问题标签 [symfony-messenger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
166 浏览

php - 主管 env var 不能与 Symfony Messenger 一起使用

我正在尝试使用 Symfony Messenger 组件使用具有相同 Redis 传输的多个消费者。正如 Symfony 指南中提到的,如果我们对流/组/信使使用相同的值,我们可能会遇到问题,因为相同的消息可以被多个消费者处理。所以我更新了我的主管配置如下:

然后,我更新了我的 messenger.yaml 文件,如下所示:

我已经重新加载了主管:

但我仍然收到错误:

我遵循了指导方针,但某处缺少一些东西……但是在哪里?为什么我的应用程序不读取 env var?

如果我打电话给我的消费者:

它按预期工作;它不仅适用于主管 var。

提前致谢

更新这是我的主管文件的完整部分配置:

0 投票
0 回答
52 浏览

php - 如何使用 Symfony Messenger 批量消息处理?

Symfony 5.4 添加了批处理 Messenger 消息的功能,但没有可用的文档。

Symfony - 批量处理消息

GitHub 公关

如何正确使用新功能?发送消息时是否需要使用特定的戳记?不幸的是,我找不到任何例子。

$ack 变量应该包含什么?据我了解应该有一个功能。她的角色是什么?我尝试将静态函数作为 $ack 参数传递,但处理程序不缓冲消息,它只是处理它们。

Symfony 有很好的文档,很奇怪没有记录这个函数。

0 投票
0 回答
7 浏览

symfony-messenger - 使用 SNS 传输发布消息并使用 sqs 传输使用消息

我需要在 symfony messenger 中使用 SNS 的自定义传输来发布消息,但是当来自 SQS 的消费者收到消息时,应该处理该消息。我正在搜索这个特定的用例,但没有找到任何示例。信使的当前配置是:

0 投票
0 回答
13 浏览

symfony - 让消费者忽略包含未知 php 类的消息

我被困在关于 Symfony 和总线消息的问题上。

现在,我们有 1 个交换器绑定到多个队列,每个队列都链接到一个服务(微服务)

一条消息被发送到一个交换器,它把它提供给每个绑定的队列。主要问题是我找不到一种方法来告诉不需要消息的服务停止尝试通过 PhpSerializer 反序列化消息。

因此,当一个服务收到一条他不应该处理的消息时,他会尝试反序列化它并给出一个

这是“正常的”,这个服务不知道用户实体,永远不会。我希望该服务只是看到他无法处理该消息,然后直接使用它。(因为每个队列有 1 个服务,他需要使用它,否则它将永远留在队列中)。因为现在,它只是抛出这个异常并杀死消费者,这是不好的。

我知道我不应该在不需要它的队列上发送消息,但在微服务中,它坚持每个人都需要获取消息,因为服务在发送之前并不知道彼此。

这是我独特的处理程序(我不认为类本身是相关的,因为它是触发异常的 symfony/messenger 的自动反序列化):

服务.yaml

Messenger.yaml

我唯一的线索是 SerializerInterface,我尝试创建一个类来使用 decode() 实现它,但我不明白我应该如何尝试捕获来获取未知类并且只丢弃消息(而不是关闭如果抛出异常。

0 投票
1 回答
26 浏览

php - 尽管在 Symfony Messenger 中将处理程序路由配置为异步,但消息未异步发送

我正在使用 Symfony 4.4 和 Symfony Messenger

Messenger 配置包括传输和路由:

虽然处理程序看起来配置正确(当我运行控制台调试:信使它显示正确分配给传输)

消息类SnowplowMessage没有排队,而是立即发送到_invoke()处理程序的方法。

我正在使用 AMQP(RabbitMQ 作为传输)并且它配置正确,因为没有显示错误并且命令控制台 messenger:setup-transport 正确创建队列

0 投票
1 回答
34 浏览

php - AMQPS Symfony Messenger 和 Heroku

我通过 Heroku 的附加组件 ( https://elements.heroku.com/addons/cloudamqp ) 使用 CloudAMQP 和 « Little Lemur » 计划。我正在构建一个 PHP Symfony 应用程序,我想通过 SSL 连接到 AMQP,但它在文档中说:

如果要使用 TLS/SSL 加密的 AMQP,还必须提供 CA 证书。在 amqp.cacert PHP.ini 设置(例如 amqp.cacert = /etc/ssl/certs)或 DSN 的 cacert 参数中定义证书路径(例如 amqps://localhost?cacert=/etc/ssl/certs /)。»(https://symfony.com/doc/current/messenger.html#amqp-transport

我的问题是我不知道 Heroku 上的 cacert 文件在哪里。

你能帮我解决这个问题吗?