gpt4 book ai didi

Symfony2 和 RabbitMqBundle。无法发布消息

转载 作者:行者123 更新时间:2023-12-04 17:24:21 27 4
gpt4 key购买 nike

我正在尝试将 syfmony2 框架与 RabbitMqBundle from here 一起使用

我确信我的 rabbitmq 服务器已启动并正在运行,并且我正在根据 github 上提供的文档进行配置和发布者代码。不幸的是,我无法向队列添加任何消息。

我确定我的 rabbitmq 服务器已启动并正在运行。我有根据 symfony 配置文件命名的队列。

有没有人知道出了什么问题?

在此先感谢您的任何建议。

最佳答案

好吧...试试这个简单的例子

# app/config.yml
old_sound_rabbit_mq:
connections: %rabbitmq_connections%
producers: %rabbitmq_producers%
consumers: %rabbitmq_consumers%

parameters:
# connection parameters
rabbitmq_connections:
default: { host: 'localhost', port: 5672, user: 'guest', password: 'guest', vhost: '/' }

# define producers
rabbitmq_producers:
sample:
connection: default
exchange_options: {name: 'exchange_name', type: direct, auto_delete: false, durable: true}

# define consumers
rabbitmq_consumers:
sample:
connection: default
exchange_options: {name: 'exchange_name', type: direct, auto_delete: false, durable: true}
queue_options: {name: 'sample', auto_delete: false}
callback: rabbitmq.callback.service

那么你应该定义你的回调服务。随意把它放在 app/config.yml
services:
rabbitmq.callback.service:
class: RabbitMQ\Callback\Service

是的。你应该编写这个回调服务。这是简单的实现。应该足以理解并检查它是否适合您。

namespace RabbitMQ\Callback;

use OldSound\RabbitMqBundle\RabbitMq\ConsumerInterface;
use PhpAmqpLib\Channel\AMQPChannel;
use PhpAmqpLib\Message\AMQPMessage;

class Service implements ConsumerInterface
{
public function execute(AMQPMessage $msg)
{
var_dump(unserialize($msg->body));
}
}

那么你应该启动rabbitmq服务器,运行消费者并检查是否添加了新的交换和队列。
要运行测试使用者,您应该运行

app/console rabbitmq:consumer sample --route="sample"

在您的 Controller 中(您想向rabbitMQ 发送消息的地方放置下一个代码

# get producer service
$producer = $this->get('old_sound_rabbit_mq.sample_producer');
# publish message
$producer->publish(serialize(array('foo'=>'bar','_FOO'=>'_BAR')), 'sample');

希望它或多或少清晰,并会帮助您使用rabbitmq。

PS:如果你有rabbitmq管理插件更容易调试。如果没有,请使用控制台命令,如 rabbitmqctl检查队列/交换/消费者等...

并且很高兴看到您的生产者/消费者配置。回调服务代码也是如此。

关于Symfony2 和 RabbitMqBundle。无法发布消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822403/

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