Centos 7中如何使用rabbitmq永久消费消息?
In Centos 7, how do you permanently consume messages with rabbitmq?
美好的一天,
我刚刚将 Symfony 3.4 项目 (PHP 7.2) 上传到 Centos 服务器,我的应用程序需要连接到 RabbitMQ。我想在 Centos 服务器中这样做,rabbitmq 不断地消耗消息。我知道如何通过 运行 这个命令暂时使用这些消息:
bin/console rabbitmq:consumer messaging
。但是我怎么能永久地使用服务器上的消息呢?我尝试 google 但没有找到任何有用的信息
在我安装的应用程序中:
"php-amqplib/php-amqplib": "*",
"php-amqplib/rabbitmq-bundle": "*"
更新:
我使用以下命令实现了我想要的情况:
nohup bin/console rabbitmq:consumer <your-consumer> &
idk 如果有一个“官方”的方式来做到这一点,但与 Linux 中的任何东西一样,你可以只写一个小守护进程来做它,一个最小的例子是将它添加到你的 crontab -e
@reboot /bin/bash /project/folder/cronjob_starter.sh
含cronjob_starter.sh含
#!/bin/bash
if [[ $(screen -ls | grep rabbitmq_daemon) ]]
then
echo "rabbitmq_daemon already running!"
/bin/true
else
# echo " rabbitmq_daemon not running!"
screen -S rabbitmq_daemon -dm
# workaround for https://savannah.gnu.org/bugs/index.php?54164
sleep 1
screen -S rabbitmq_daemon -X stuff "cd /project/folder; bin/console rabbitmq:consumer messaging^M"
fi
然后您可以使用 screen -xS rabbitmq_daemon
或 Screenie 应用程序检查您的守护进程(老实说我不知道如何在 CentOS 上“正确”安装 Screenie,我只是 运行 curl https://gist.githubusercontent.com/divinity76/1a583968c997869b27a5ee2c1ed24259/raw/76453e61a92676386589fbb3f4ef0225ac98fb19/screenie.b64 | base64 -d | sudo tee /usr/local/bin/screenie ; sudo chmod 0555 /usr/local/bin/screenie;
)
- 如果有一种“官方”方式,那么您应该改为采用官方方式,不幸的是我对此一无所知。
美好的一天,
我刚刚将 Symfony 3.4 项目 (PHP 7.2) 上传到 Centos 服务器,我的应用程序需要连接到 RabbitMQ。我想在 Centos 服务器中这样做,rabbitmq 不断地消耗消息。我知道如何通过 运行 这个命令暂时使用这些消息:
bin/console rabbitmq:consumer messaging
。但是我怎么能永久地使用服务器上的消息呢?我尝试 google 但没有找到任何有用的信息
在我安装的应用程序中:
"php-amqplib/php-amqplib": "*",
"php-amqplib/rabbitmq-bundle": "*"
更新:
我使用以下命令实现了我想要的情况:
nohup bin/console rabbitmq:consumer <your-consumer> &
idk 如果有一个“官方”的方式来做到这一点,但与 Linux 中的任何东西一样,你可以只写一个小守护进程来做它,一个最小的例子是将它添加到你的 crontab -e
@reboot /bin/bash /project/folder/cronjob_starter.sh
含cronjob_starter.sh含
#!/bin/bash
if [[ $(screen -ls | grep rabbitmq_daemon) ]]
then
echo "rabbitmq_daemon already running!"
/bin/true
else
# echo " rabbitmq_daemon not running!"
screen -S rabbitmq_daemon -dm
# workaround for https://savannah.gnu.org/bugs/index.php?54164
sleep 1
screen -S rabbitmq_daemon -X stuff "cd /project/folder; bin/console rabbitmq:consumer messaging^M"
fi
然后您可以使用 screen -xS rabbitmq_daemon
或 Screenie 应用程序检查您的守护进程(老实说我不知道如何在 CentOS 上“正确”安装 Screenie,我只是 运行 curl https://gist.githubusercontent.com/divinity76/1a583968c997869b27a5ee2c1ed24259/raw/76453e61a92676386589fbb3f4ef0225ac98fb19/screenie.b64 | base64 -d | sudo tee /usr/local/bin/screenie ; sudo chmod 0555 /usr/local/bin/screenie;
)
- 如果有一种“官方”方式,那么您应该改为采用官方方式,不幸的是我对此一无所知。