php cURL 请求导致会话死锁
php cURL request causing session deadlock
我有一个使用会话来检查用户是否已通过身份验证的请求。然后根据该请求,我使用会话变量发出 cURL 请求(需要进行身份验证)。
问题是第一个请求一直等到 cURL 请求完成,而 cURL 请求在初始请求完成之前无法启动会话。我遇到了死锁,导致两个请求都超时。
有办法解决这个问题吗?
在第一个脚本中更新会话后,
使用 session_write_close();
从文件中删除锁。
在PHP7你看完可以马上解除锁定:
session_start([
'cookie_lifetime' => 86400,
'read_and_close' => true,
]);
HHVM 默认执行此操作。
更好的方法是使用像内存缓存这样的非锁定会话处理程序。
我有一个使用会话来检查用户是否已通过身份验证的请求。然后根据该请求,我使用会话变量发出 cURL 请求(需要进行身份验证)。
问题是第一个请求一直等到 cURL 请求完成,而 cURL 请求在初始请求完成之前无法启动会话。我遇到了死锁,导致两个请求都超时。
有办法解决这个问题吗?
在第一个脚本中更新会话后,
使用 session_write_close();
从文件中删除锁。
在PHP7你看完可以马上解除锁定:
session_start([
'cookie_lifetime' => 86400,
'read_and_close' => true,
]);
HHVM 默认执行此操作。
更好的方法是使用像内存缓存这样的非锁定会话处理程序。