我们正在使用beanstalkd从客户端运行接收作业,使用php并使用pheanstalk作为php代理。我们将一个worker作为php系统守护进程运行,并使用monit进行监控。
但它在一天一次的频率中不断重启。观察问题后,确认没有代码方错误。那有什么机会呢?
答案 0 :(得分:0)
PHP并不是设计为一个长时间运行的过程,因此偶尔重新启动脚本可能是一件有用的事情 - 特别是如果干净的出口在你的控制之下。
例如,您可以在循环中运行50/100/1000个作业,然后退出脚本以使其自动重新启动。包裹call to the script in a fairly simple shell script可以检查返回值,然后立即重启,如果可能出现问题,可以减慢一点。
脚本突然失败的原因有很多种。内存泄漏可能会强制操作系统终止进程,错误可能会导致未捕获的异常或其他此类致命错误,或者脚本外部可能导致失败。
队列后台工作人员的困难部分是处理可能阻止脚本一直工作的(潜在)问题。详细日志可以帮助您解决此类问题。