繁体   English   中英

php服务器后台进程

[英]php server background processes

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

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

提前致谢

我建议您编写守护程序,而不是使用cron,而可以使用PHP,python,node.js或您喜欢的语言来完成。 编写脚本后,您可以使用upstar在后台程序中对其进行转换

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM