Symfony Messenger(消息队列),如何获取队列状态?

nul*_*lll 5 message-queue symfony symfony4

我正在使用Doctrine Transport接近Symfony 4.4 Message Queue

如何全面了解队列状态?

我注意到 Doctrine 将队列存储在表中messenger_messages,显然我可以查询该表来获取此信息,但我确信 Symfony 有一种本地方法来获取队列状态。

我想得到:

  • 队列中的消息数
  • 此时正在处理的消息数

Eur*_*ics 3

更新:
从 Symfony 6.2(当前版本)开始,现在有一个控制台命令来检查消息统计信息。来源:检查每次传输的排队消息数


不幸的是,Symfony(从 v5.4/v6 开始)没有使用默认消息队列的本机方式。但可能的解决方案是:

  1. 正如你所说,查看消息表
  2. 使用您自己需要的命令扩展控制台(例如读取消息表并打印所需的信息)
  3. 使用已经内置此功能的替代消息系统(例如 RabbitMQ)