如果我向交换发布消息并且消息的消费者无法处理它,我可以按设定的间隔重试消息。问题是消息被发送给所有消费者而不仅仅是失败的消费者。
您如何仅向失败的消费者重新发送消息?
答案 0 :(得分:0)
假设您拥有并交换绑定到更多队列
exchange ---> queue1 ---> consumer 1
|---> queue2 ---> consumer 2
|---> queue3 ---> consumer 3
如果一个消费者失败,您不需要重新发送消息,消息将存储到队列中。这是队列的范围
答案 1 :(得分:0)
如果消费者失败,那么消息将保留在队列中,您不必再次发送消息。当消费者启动并运行时,您将收到无法处理的最后一条消息。这样我们就可以解决一遍又一遍地发送消息的问题。并且您不必发送>>> key_aws = conn.create_key_pair('newkey')
>>> key_aws.save(".")
True
>>> conn.run_instances('ami-ced887ad', key_name=key_aws.name,instance_type='t1.micro',security_group_ids=['sg-93cb39f6'])
Reservation:r-07f831452bf869a14
>>> conn.run_instances('ami-ced887ad', key_name='newkey',instance_type='t1.micro',security_group_ids=['sg-93cb39f6'])
Reservation:r-0476ef041ed26a52f
仅发送Nack
消息,当消费者失败时,消息将在队列中。您可以在执行Ack
之前获取消息并停止消费者。您将能够在队列中再次看到该消息。