Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每30秒运行一次PHP脚本的最佳方式是什么?_Php_Mysql_Bash_Cron_Raspberry Pi2 - Fatal编程技术网

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

每30秒运行一次PHP脚本的最佳方式是什么?,php,mysql,bash,cron,raspberry-pi2,Php,Mysql,Bash,Cron,Raspberry Pi2,我有一个特殊的要求,那就是,我正在使用Raspberry Pi 2 B设备向云服务中的mysql数据库提供一些数据。所以我在raspberry pi上安装了LAMP堆栈,并在那里配置了我的脚本。它的任务是向远程服务器(云)mysql数据库插入一些值(我已经为它打开了端口)。脚本应该每30秒运行一次。所以我不需要浏览器支持,因为我们不需要显示关于Raspberry Pi的任何详细信息。在第一次运行脚本之后,它应该永远不会停止,应该在365天内全天候运行 所以我的问题是如何在30秒内运行我的脚本,似

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

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

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

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

    您应该使用PHP创建一个
    守护程序
    (如Windows服务)。看一看凯文的博客,它展示了如何去做

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

    还有一个关于守护PHP脚本的很好的讨论


    Cron
    不会为您剪切它,因为它的最佳分辨率是1分钟

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


    cron。或者是一个持续运行的php进程。绝对不会,永远不会,通过浏览器点击的脚本这个问题最好在不同的论坛上提问,例如serverfault.com,但在stackoverflow上还有其他答案,例如。或者使用daemontools之类的工具-Cron可以与两个条目一起使用,一个等待30秒,但非常难看。我更喜欢克莱德在评论中给出的链接中的解决方案。它应该每30秒运行一次,而不是30分钟