云任务的死信队列

5

在云任务(GCP)中是否可以创建死信队列?

我正在使用云任务代替发布/订阅来控制并发发送消息。但与发布/订阅不同,似乎云任务并没有使用死信队列。是否有其他方法可以为云任务创建死信队列?


1
也许...与其考虑死信队列,不如问自己“我怎么知道任务失败了?”...答案难道不是查看任务列表并找到处于失败状态的任务吗?这不就是你需要解决的任务“集”吗?这样做是否能达到在死信队列中查找未能成功传递消息的效果呢? - Kolban
@Kolban 假设我们将这些任务的处理状态存储在数据库中,那么我们如何过滤掉甚至没有被选中进行处理的任务呢? - Ihan Dilnath
2个回答

1

似乎Google Cloud Tasks没有提供类似于PubSub订阅属性的Dead-Letter抽象。

然而,在您的项目中,您可以使用Cloud Monitoring,它与大多数Google Cloud服务集成在一起,可以自动监控Cloud Task的关键指标,并可能创建以下方面的警报:

  • 队列深度:队列中的任务数量。
  • 任务尝试计数:按响应代码拆分的任务尝试次数。
  • 任务尝试延迟:每个预定尝试时间和实际尝试时间之间的延迟(以毫秒为单位)。

这样,通过检查上述指标,有人可以调查工作者是否跟得上任务的流程。


0
如果你真的需要一个死信队列,但又希望以某种方式控制正在发送的并发消息,我建议你实施这个问题的评论中所说的方法: 如何对Google Cloud Pub/Sub队列进行速率限制 你可以将消息/任务写入Datastore,并实施一个云函数从中提取n个消息并将它们发送到Pub/Sub。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接