首页 > 解决方案 > 是否可以将事务同时应用于 Azure 队列和 Azure 表?

问题描述

我有一个四步序列,我想进行交易。

1) 在 WebJob 中从 Azure 队列接收消息

2)做一些非常复杂的工作,包括在后台启动GIT。

3) 处理 Azure Tables 中的一些数据,将结果写入另一个 Azure Table。

4) 通过 Azure Queue 将通知推送到下一个工作流。

我希望所有这些都是事务性的,这样任何失败都会阻止第一步中的消息永久出队。这可能吗?

标签: azuretransactionsazure-table-storageazure-queues

解决方案


对此没有 Azure 支持。通常也无法实现队列消息的一次性传递。

可能,对您来说最好的解决方案是使用至少一次传递(默认)并使消息处理具有幂等性。这意味着消息处理程序必须检测消息是否已被处理。它可以通过检查 Azure Tables 来查看结果是否已经存在。


推荐阅读