是否可以将事务应用于 Azure 队列和 Azure Table?
Is it possible to have a transaction apply to both an Azure Queue and an Azure Table?
我有一个四步顺序要放入交易中。
1) 在 WebJob 中接收来自 Azure 队列的消息
2) 做一些非常复杂的工作,包括在后台启动 GIT。
3) 处理来自 Azure Table 的一些数据,将结果写入另一个 Azure Table。
4) 通过 Azure 队列将通知推送到下一个工作流。
我希望所有这些都是事务性的,这样任何失败都可以防止第一步中的消息永久出队。这可能吗?
Azure 对此不提供支持。也一般不可能实现队列消息的exactly-once投递。
可能,最适合您的解决方案是使用至少一次传递(默认)并使消息处理幂等。这意味着消息处理程序必须检测消息是否已被处理。它可以通过检查 Azure 表以查看结果是否已经存在来做到这一点。
我有一个四步顺序要放入交易中。
1) 在 WebJob 中接收来自 Azure 队列的消息
2) 做一些非常复杂的工作,包括在后台启动 GIT。
3) 处理来自 Azure Table 的一些数据,将结果写入另一个 Azure Table。
4) 通过 Azure 队列将通知推送到下一个工作流。
我希望所有这些都是事务性的,这样任何失败都可以防止第一步中的消息永久出队。这可能吗?
Azure 对此不提供支持。也一般不可能实现队列消息的exactly-once投递。
可能,最适合您的解决方案是使用至少一次传递(默认)并使消息处理幂等。这意味着消息处理程序必须检测消息是否已被处理。它可以通过检查 Azure 表以查看结果是否已经存在来做到这一点。