公共交通:使用 AWS SQS 和作业消费者

Mass Transit: Using AWS SQS and Job Consumers

目前我们正在使用 Hangfire 进行调度和 运行 长期任务。我们需要这些任务能够在 Hangfire 为我们处理的非正常关机事件中重试。

我们正在尝试迁移到 producer/consumer 模型,我已经使用 Masstransit 和 AWS SQS 构建了一个基本原型,但我对如何处理任务正在处理的事件有些担忧在非正常关机期间处理。

我知道 SQS 可见性超时最终会过期,排队的项目将被再次处理,但设置超时并不是微不足道的,因为任务的长度可能会有很大差异,我更愿意当应用程序再次启动时,任务可以立即 resume/retry 处理。

我阅读了有关工作消费者的资料,它们似乎更适合这种情况,但我看到的所有示例都使用 RabbitMQ。想知道是否 possible/appropriate 使用 SQS 来执行此操作,或者是否有更好的方法?

感谢您花时间阅读这个问题:)

只要消费者仍然 运行,MassTransit 就会延长可见性超时。

我相信 SQS 有一个 upper-limit 大约 12 小时的时间,但你应该查一下并找出答案。

Job Consumers 有明显更高的要求(sagas、临时队列等),而 SQS 没有 auto-delete/expiring 队列真的很烦人,所以如果你能改变它,我会坚持使用普通消费者。