每30秒运行一次PHP脚本的最佳方法是什么?


What is the best way to run PHP script every 30 seconds?

我有一个特殊的要求,那就是,我正在使用树莓派2b设备向云服务器中的mysql数据库提供一些数据。所以我已经在树莓派上安装了LAMP堆栈,并在那里配置我的脚本。它的任务是插入一些值到远程服务器(云)mysql数据库(我已经为它打开端口)。脚本应该每30秒运行一次。所以我不需要浏览器支持,因为我们不需要在树莓派上显示任何细节。在第一次运行脚本之后,它不应该停止,应该在365天内全天候运行。

所以我的问题是如何运行我的脚本在每30秒,似乎我有几个选项

  1. 使用PHP线程(似乎需要浏览器支持或第一次脚本通过bash运行,如果出现一些异常,脚本将停止运行,直到它手动重置,数据库连接将建立一次,因此浪费时间建立它一次又一次将防止)
  2. 使用Cronjob(似乎不需要浏览器支持,即使是第一次运行,猜测因为它是运行完整的脚本再次减少脚本终止,数据库连接将建立一次又一次的运行,这样会浪费时间)

我主要关心的是永远不要停止脚本,应该花最少的时间运行脚本一次,服务器不应该被进程杀死,因为它每30秒命中一次。也许有比以上方法更有效的方法,请提出你的意见。

你应该用PHP创建一个daemon(像Windows Service)。看看Kevin的博客,他演示了如何在PHP中创建守护进程。

你可以让你的守护进程休眠30秒,然后重新开始。首先进行大量的日志记录,然后添加开关/参数来控制日志记录的级别。

关于守护PHP脚本的问题2036654也有一个很好的讨论。

Cron不会为你切割它,因为它的最佳分辨率是1分钟。

推荐使用Cronjob。您可以编写PHP脚本,然后设置Cronjob以每30分钟运行该脚本。

https://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job