2016-04-29 137 views
4

发生移动到死信队列的错误,我已经使用NPM包,比如试图SQS队列并行& SQS-消费者对节点消耗SQS的消息AWS SQS:当消费者

但最近我有机构在当对于特定的消息发生错误时的处理,它应该被移到死信队列

但截至目前其不断重试的最大消息接收计数倍

是否有可能与其他一些NPM包,分别为每当发生错误时,应将其直接移至死信队列中?

回答

0

你不需要使用新的NPM为它,当你完成处理的消息会自动发生。例如,如果您已经使用节点消费者,当您与消息完成你做:

done() //in order to remove from queue due to for success probably 

done(err) //in order to keep in queue 

所以现在为了从队列中移动消息,你不需要死信队列做任何事情在你的代码,但只有在你SQS控制台管理器:

  1. 创建一个新的队列
  2. 称之为死的消息(或其他)
  3. 将“Maximum Receives”值设置为1(这意味着在一次调用 “done(error)”后,消息将从您的队列中移除并进入死队列。
  4. 刷新!!!!
  5. 回到你的源队列(原)
  6. 去配置队列
  7. 集中获取政策
  8. 把你给了死信队列

这就是它的名字!祝你好运,我不得不说sqs是扩展任务的好方法。

2

知道这有点迟,但认为OP正试图寻求动态的政策。 I .: .:

  • 对正常错误 - >重试根据redrive-policy。
  • 但是,对于某些故障,您可能知道即使尝试了一百个项目,也无法恢复。在这种情况下 - >将消息直接移动到死信队列中。

如果大概是什么问,怎么做后者。

答案可能是手动将消息复制到死信队列(它的行为就像任何其他队列那样),然后从源队列中删除消息。

不要相信有一种“特殊”的方式来做到这一点。