【发布时间】:2017-04-05 13:34:06
【问题描述】:
我需要帮助。
在将记录添加到数据库后,我有一些任务需要运行。例如:压缩上传的图片。为此,我使用 RabbitMQ。
我有单独的脚本,它完全等同于这个例子,除了 process_message 函数中的逻辑: https://github.com/php-amqplib/php-amqplib/blob/master/demo/amqp_consumer_non_blocking.php。
根据我对这个长期运行脚本的理解,我使用命令在 Linux 中运行它:
nohup php amqp_consumer.php production &
但有时这个任务会崩溃。而我无法控制它。我需要有自动重新启动此任务的方法。
能否请您给我一些建议,您如何经营消费者?你如何控制它并重新启动?谢谢。
【问题讨论】:
-
使用像Supervisor这样的进程管理器,它会在作业失败时自动重启进程。
-
我支持supervisord ...除此之外我使用这个东西坐在后台(因为PHP不适合bg进程):github.com/ricbra/rabbitmq-cli-consumer
标签: php linux rabbitmq debian daemon