PHP:我如何才能确保我的脚本长时间运行



我正在开发一个简单的应用程序,它将允许我将电子邮件从一个IMAP服务器迁移到另一个。

尽管脚本可以工作,但可能有些IMAP邮箱非常大,而且脚本运行时间很长。我知道我可以使用set_time_limit(0) 将脚本的时间限制设置为永远不会结束

然而,理想情况下,我希望能够将其设置为启动,并能够稍后查看网页,看看它是否仍在运行或完成。有没有一种方法可以启动一个流程,然后再回来查看相同的流程?

当我问这样的问题时,我真的不确定正确的术语,所以我希望我已经明确了自己:)

编辑:我刚刚看到函数ignore_user_abort(),但我不确定这将如何让我回到同一页,查看进程是否仍在运行、是否因错误而停止,或者是否已完成。

设置一个cron作业来运行脚本,并将其状态记录到某个文本日志中。然后你所要做的就是检查你的日志。

在正常的HTTP请求中,PHP作为其他程序的子进程运行。通常是Apache,但这完全取决于你的web服务器是什么。问题是,即使有PHP中的选项,web服务器也总是有可能因为各种不同的原因结束PHP进程。

拥有长时间运行的PHP脚本的最佳解决方案是通过命令行界面(CLI)运行脚本http://php.net/manual/en/features.commandline.php

在那里,它可以想跑多久就跑多久。我仍然会使用set_time_limit(0),但请查看上面的链接以了解详细信息。

此外,如果您不能访问服务器上的命令行,通常您可以访问某种任务调度程序(Linux中的CRON)。这些通常通过像在命令行上一样执行命令来工作,因此您可以根据需要设置一个任务来运行PHP脚本。

至于状态更新。您可以让迁移代码将状态写入数据库或文本文件。然后创建第二个显示状态更新的普通PHP页面。

相关内容

  • 没有找到相关文章

最新更新