我有一个需要很长时间(5-30分钟)才能完成的PHP脚本。以防万一,脚本正在使用curl从另一台服务器上刮取数据。这就是它花费这么长时间的原因。它必须等待每个页面加载,然后再处理并移至下一页。我希望能够启动脚本并放任其完成,这将在数据库表中设置一个标志。我需要知道的是如何能够在脚本完成运行之前结束http请求。另外,php脚本是做到这一点的最佳方法吗?
3 回答
九州编程
TA贡献1785条经验 获得超4个赞
快速而肮脏的方法是ignore_user_abort
在php中使用该函数。基本上是这样说的:不管用户做什么,运行脚本直到完成。如果它是一个面向公众的网站,则有些危险(因为如果启动20次,最终有可能同时运行20个++版本的脚本)。
“干净”的方式(至少是IMHO)是在您要启动进程时设置一个标志(例如,在数据库中),并每小时(约等)运行一次cronjob来检查该标志是否已设置。如果已设置,则将运行长时间运行的脚本;如果未设置,则不会发生什么。
- 3 回答
- 0 关注
- 521 浏览
添加回答
举报
0/150
提交
取消