php服务器后台进程

时间:2013-04-09 14:33:21

标签: php mysql cron

我想知道如何实现一些php服务器后台功能来每秒处理一些评估(独立于用户查看页面)。

我目前的解决方案是使用每秒运行的cron作业完成的。我想知道是否有其他选择或可能性。

提前致谢

2 个答案:

答案 0 :(得分:0)

我建议您编写一个守护进程,而不是使用cron,您可以使用PHP,python,node.js或您喜欢的语言来执行此操作。编写脚本后,可以使用upstar

在守护程序中对其进行转换

答案 1 :(得分:0)

1)用while循环编写程序并休眠。

while (1)
{
  if (x == y) {
    echo "yay!"
  }
  sleep(1);
}

2)用包装器编写程序,因此它永远不会崩溃。

while test 1
do
php /usr/local/bin/continual_process.php
done

这种方法的问题在于它常常使用CPU周期。如果您将程序编写为node.js应用程序,则事件驱动的体系结构和setTimeout功能可以帮助扩展您的应用程序(并让您考虑解决问题的不同思维方式)。

此外,您还必须考虑处理循环所需的时间。如果你每秒调用一次程序,但循环需要2秒钟,那么你就是在吃掉你的进程! sleep方法可能也不值得。如果循环需要2秒,而你sleep 1,则每3秒运行一次该过程。

最后,如果你的过程快速而轻巧(在1秒循环下),考虑使用setInterval