1

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

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

提前致谢

4

2 回答 2

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.

于 2013-04-09T14:59:21.297 回答
0

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

于 2013-04-09T14:44:56.120 回答