【问题标题】:What is the best way to run PHP script every 30 seconds? [closed]每 30 秒运行一次 PHP 脚本的最佳方法是什么? [关闭]
【发布时间】:2015-08-10 08:24:29
【问题描述】:

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

所以我的问题是如何每 30 秒运行一次我的脚本,似乎我没有什么选择

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

我主要关心的是永远不要停止脚本,应该花费最少的时间来运行一次脚本,并且服务器不应该被进程杀死,因为它每 30 秒命中一次。请在某个时候提出您的意见,可能还有另一种比上述方法更有效的方法

【问题讨论】:

标签: php mysql bash cron raspberry-pi2


【解决方案1】:

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

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

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

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

【讨论】:

  • Cron 可以使用两个条目,一个等待 30 秒,但是非常难看。我更喜欢克莱德在评论中给出的链接中的解决方案。
【解决方案2】:

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

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

【讨论】:

  • 它应该每 30 秒而不是 30 分钟运行一次
猜你喜欢
  • 2012-11-14
  • 2015-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-23
  • 2012-03-26
  • 1970-01-01
  • 2015-10-12
相关资源
最近更新 更多