gpt4 book ai didi

symfony - 管理 RabbitMQ 消费者

转载 作者:行者123 更新时间:2023-12-02 12:03:41 24 4
gpt4 key购买 nike

我计划使用 RabbitMQ、Symfony2 和 RabbitMqBundle 编写一个日志处理应用程序。我正在开发的工具必须具有高可用性,并且必须每天处理数百万个条目,因此消费者始终启动并运行(短暂休息即可)非常重要,否则我的队列可能会在一段时间后溢出。

是否有关于如何管理消费者(用 PHP 编写)、在出现错误等情况下启动/重新启动它们的最佳实践?

谢谢

最佳答案

我使用此 bash 脚本来确保所有必需的使用者都在 imagepush.to 上运行。 :

#!/bin/bash

NB_TASKS=1
SYMFONY_ENV="prod"

TEXT[0]="app/console rabbitmq:consumer primary"
TEXT[1]="app/console rabbitmq:consumer secondary"

for text in "${TEXT[@]}"
do

NB_LAUNCHED=$(ps ax | grep "$text" | grep -v grep | wc -l)

TASK="/usr/bin/env php ${text} --env=${SYMFONY_ENV}"

for (( i=${NB_LAUNCHED}; i<${NB_TASKS}; i++ ))
do
echo "$(date +%c) - Launching a new consumer"
nohup $TASK &
done

done

如果我没记错的话,我是从 KnpBundles 代码中获取基础的。

关于symfony - 管理 RabbitMQ 消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19793839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com