我想知道如何实现一些php服务器后台功能来每秒处理一些评估(独立于用户查看页面)。
我目前的解决方案是使用每秒运行的cron作业完成的。我想知道是否有其他选择或可能性。
提前致谢
答案 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
。