我对php还很陌生。实际上这是我第一次,如果这个问题听起来很愚蠢,我会提前道歉。
我有一个php脚本,它从外部api获取数据并定期更新我的数据库。我知道最好的方法是使用cron作业。但是,我使用的是一个无限循环,在每次更新之间睡眠一段特定的时间。
现在,我需要允许用户(管理员)启动/停止脚本,并允许他们更改每次更新之间的时间间隔。管理员通过一个ui来完成这项工作。最好的方法是什么?当用户单击“开始”时,如何在后台执行脚本?如何停止脚本?
谢谢。
最佳答案
我认为理想的解决方案是:
让后台作业每分钟作为cronjob运行一次(而不是作为可能导致内存泄漏的循环)。php不是被设计成守护进程的。
在cronjob中为on/off设置一个db标志,每次运行它时都检查它的on或off,如果存在则继续。
在ui中,可以根据管理员的需要打开或关闭该标志。
我认为这是最好的方法(也是最容易的)。
关于php - 从浏览器启动/停止在后台运行的php脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22556777/