在一个php脚本中触发另一个耗时很长的php脚本,不想等待,怎么做?curl去触发需要加个超时,如果超时设置短了失败率很高(网络不稳),长了也很耗时,只是相对时间少一点,fsockopen去触发需要加个延时(sleep(*)),都要留时间给网络传输数据,不是特别好,有其他解决方法吗?
(必须在服务器端)
(必须在服务器端)
php异步 推荐workerman
http://doc3.workerman.net/faq/async-task.html
Swoole性能比workerman高点 因为是纯c扩展的缘故
但同样workerman比Swoole安装要方便很多
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答670 阅读✓ 已解决
2 回答591 阅读✓ 已解决
用fsockopen fwrite()后 加上usleep(1000) 就可以了,目前稳定。
问题移步https://segmentfault.com/q/1010000004590173?_ea=660163
另外关于PHP超时处理要注意:
下面例子是设置数据传输时的超时,不是整个连接的超时。 如果跟我一样问题的想用当前脚本触发另一个耗时很长的php脚本不要用这种方式,这样设置是无效的。这样的设置是代表当前脚本 等待耗时长的另外一个脚本执行完成后返回数据,传输数据时不能超过一秒,不是说连接超过一秒就断开。
如果用CURL
设置超时
--- 云网开 用手机建网站