4

我正在从队列中获取消息,对其进行处理,并且对于某些消息,我知道在尝试处理它之前我必须等待几秒钟。

选项是:

  • 我可以调用 sleep() 并等待,但有时可能会有数百条消息,并且不能选择大量的工人。

  • 我可以简单地重新排队消息,但这是个好主意吗?我将一次又一次地处理它,结果相同。(处理包括数据库排队等)

  • 我可以给自己发送一条新消息,包括时间戳,以了解是否该处理消息了。所以在到达时我只是要检查时间戳,如果它是好的procceed到通常的处理。

显然,第三种方式更好,但我应该将此消息发送到相同的交换/队列,还是创建不同的交换“processing_pass2”是个好主意?或者可能有一些内置功能@rabbitMQ 来执行这样的任务?重新排队消息在给定的秒数后再次出现?

4

0 回答 0