php cURL请求导致会话死锁

时间:2016-03-21 16:09:46

标签: php session deadlock

我有一个使用会话检查以查看用户是否经过身份验证的请求。然后,根据该请求,我使用会话变量发出cURL请求(需要进行身份验证)。

问题是第一个请求等待cURL请求完成,并且cURL请求在初始请求完成之前无法启动会话。我遇到了僵局,导致两个请求超时。

有解决方法吗?

1 个答案:

答案 0 :(得分:1)

在第一个脚本中更新会话后, 使用session_write_close();从文件中删除锁定。

在PHP 7中,您可以在阅读后立即删除锁定:

session_start([
    'cookie_lifetime' => 86400,
    'read_and_close'  => true,
]);

HHVM默认执行此操作。

更好的方法是使用非锁定会话处理程序,如memcache。