有人知道将幂等操作设计为天蓝色操作的模式,特别是表存储吗?更常见的方法是生成一个 id 操作并将其缓存以验证新的执行,但是,如果我有十几个工人处理操作,这种方法会更加复杂。:-))
谢谢
有人知道将幂等操作设计为天蓝色操作的模式,特别是表存储吗?更常见的方法是生成一个 id 操作并将其缓存以验证新的执行,但是,如果我有十几个工人处理操作,这种方法会更加复杂。:-))
谢谢
好的,所以您没有按照knightpfhor和codingoutloud的要求提供示例。也就是说,这是处理幂等操作的一种非常常见的方法:将您需要的操作推送到 Windows Azure 队列。然后,无论您拥有多少个工作角色实例,一次只能有一个实例处理特定的队列项。当从队列中读取队列消息时,它会在您指定的时间内变得不可见。
现在:在处理该消息期间可能会发生一些事情:
这涉及并发性。对于幂等性,这取决于您确保可以重复操作而不会产生副作用。例如,您计算某人的周薪,排队打印作业,并将周薪存储在表格行中。由于某种原因,发生了故障,您要么永远不会删除消息,要么代码在获得删除消息的机会之前中止。
时间快进,另一个工作实例(甚至可能是同一个)重新读取此消息。此时,理论上您应该能够简单地重新执行所需的操作。如果在您的情况下这真的不可能,那么您就没有幂等操作。但是,您可以使用一些机制来帮助您解决此问题:
希望有帮助。有点在黑暗中拍摄,不知道更多关于你想要达到的目标。
编辑:我想我应该提到我没有看到幂等性和表存储之间的联系。我认为这更像是一个并发问题,因为无论是使用表存储、SQL Azure 还是任何其他存储容器,都需要处理幂等性。
相信你可以使用Reply log存储的方式来解决这个问题