目的:防止RabbitMQ消费者进程中断影响业务
1、编写 rabbitmq_consumer.php消费者文件
(关于消费者和生产者请移步:https://blog.csdn.net/why444216978/article/details/84987011)
2、编写shell脚本 check_php_runing.sh 定时检测消费者而启动情况,如未启动则启动
#!/bin/sh
pro=$(ps -ef | grep $1 |grep -v grep | grep -v "$0")
#过滤出目标进程信息,如果pro为空串说明目标进程未运行
#反向过滤掉grep进程 和 本进程信息, 因为这两个进程信息中包含目标进程的名字
if [ -z "$pro" ]
then
echo "$(date):$1程序未启动,重新启动程序"
"/usr/local/php/bin/php" $1
else
echo "$(date):$1程序正在运行"
fi
sleep 0.5
3、更改定时任务列表
(定时任务相关操作请移步:https://blog.csdn.net/why444216978/article/details/83748136)
* * * * * sh /usr/local/nginx/html/queen/check_php_runing.sh /usr/local/nginx/html/queen/rabbitmq_consumer.php >> /usr/local/nginx/html/queen/logs/check_php_runing.log