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

时间:2015-05-28 02:26:49

标签: php mysql bash cron raspberry-pi2

我有一个特殊要求,即我使用Raspberry Pi 2 B设备将一些数据提供给云服务器中的mysql数据库。所以我在raspberry pi上安装了LAMP堆栈并在那里配置我的脚本。它的任务是将一些值插入远程服务器(云)mysql数据库(我已经为它打开了端口)。并且脚本应该每30秒运行一次。所以我不需要浏览器支持,因为我们不需要在Raspberry Pi上显示任何细节。首次运行脚本后它不应该停止,应该全天候运行24x7天。

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

  1. 使用PHP线程(似乎需要浏览器支持或首次运行bash的脚本,如果稍后发生某些异常,脚本将再次停止运行,直到手动重置,数据库连接将建立一次因此浪费时间来建立它一次又一次地阻止)
  2. 使用Cronjob(即使是第一次运行似乎也不需要浏览器支持,猜测因为它再次运行完整脚本会减少脚本的终止,数据库连接会一次又一次地为每次运行建立以便浪费时间)
  3. 我主要担心的是永远不会停止脚本,应该花费最少的时间来运行脚本一次,并且服务器不应该被进程杀死,因为它在每30秒内命中一次。请提出您的意见,有时候可能有另一种方法比上述方法更有效

2 个答案:

答案 0 :(得分:3)

您应该使用PHP创建daemon(如Windows服务)。看看Kevin的博客,该博客说明了如何create daemons in PHP

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

关于在question 2036654上守护PHP脚本也有很好的讨论。

Cron不会为你剪掉它,因为它的最佳分辨率为1分钟。

答案 1 :(得分:0)

我建议使用Cronjob。您可以编写PHP脚本,然后设置Cronjob以每30分钟运行一次该脚本。

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