最好的方法来管理长期运行的PHP脚本?

我有一个需要很长时间(5-30分钟)才能完成的PHP脚本。以防万一,脚本正在使用curl从另一台服务器上刮取数据。这就是它花费这么长时间的原因。它必须等待每个页面加载,然后再处理并移至下一页。

我希望能够启动脚本并放任其完成,这将在数据库表中设置一个标志。

我需要知道的是如何能够在脚本完成运行之前结束http请求。另外,php脚本是做到这一点的最佳方法吗?


长风秋雁
浏览 523回答 3
3回答

九州编程

快速而肮脏的方法是ignore_user_abort在php中使用该函数。基本上是这样说的:不管用户做什么,运行脚本直到完成。如果它是一个面向公众的网站,则有些危险(因为如果启动20次,最终有可能同时运行20个++版本的脚本)。“干净”的方式(至少是IMHO)是在您要启动进程时设置一个标志(例如,在数据库中),并每小时(约等)运行一次cronjob来检查该标志是否已设置。如果已设置,则将运行长时间运行的脚本;如果未设置,则不会发生什么。
打开App,查看更多内容
随时随地看视频慕课网APP