启动/停止从浏览器在后台运行的php脚本

时间:2014-03-21 10:54:36

标签: php

我是PHP的新手。这实际上是我的第一次,所以如果这个问题听起来很愚蠢,我会提前道歉。

我有一个php脚本,它从外部API获取数据并定期更新我的数据库。我知道这样做的最好方法是使用cron作业。但是,我使用的是一个无限循环,它会在每次更新之间休眠一段时间。

现在,我需要允许用户(admin)启动/停止脚本,并允许他们更改每次更新之间的时间间隔。管理员通过UI完成此操作。做这个的最好方式是什么?当用户单击“开始”时如何在后台执行脚本以及如何停止脚本?

感谢。

2 个答案:

答案 0 :(得分:0)

你可能想看一下PHP中的线程 - > http://www.php.net/manual/en/class.thread.php

另一种选择是设置一个SESSION(这有点棘手,因为你不会在同一个调用中捕获它)或者你生成一个文件告诉脚本停止/退出/失败/如果该文件存在。

答案 1 :(得分:0)

我认为理想的解决方案如下:

  1. 让后台作业每分钟运行一次cronjob(而不是可能导致内存泄漏的循环)。 PHP并非设计为守护进程。

  2. 在cronjob中设置一个DB标志,用于打开/关闭,每次运行时都会检查它是打开还是关闭,如果关闭它,如果打开则继续。

  3. 在用户界面中,您可以根据管理员的需要打开或关闭该标记。

  4. 我认为这是最好的方式(最简单)。