Mar*_*ine 3 azure azure-queues azure-webjobs
我需要在计划的时间段内为不同的用户运行一项作业(例如 CRM 同步)。此同步由另一个函数放入 ServiceBus 队列上的消息触发,该函数每 30 分钟由 TimerTrigger 触发一次。
现在我需要的是避免每个用户作业并行运行多次,即如果前一个作业未完成,我需要阻止同一用户处理同一作业。
让我们想象一下:
如何避免这种情况?
我是否必须手动实现 Azure 租赁 Blob 的逻辑?
谢谢。
使用WebJob的[Singleton]属性。这就像分布式锁。在底层,它是通过 blob 租赁来实现的。这是一个方法级属性。你可以提供一个“范围”来决定锁的粒度;并且范围可以基于绑定数据。
有关更多详细信息,请参阅https://github.com/Azure/azure-webjobs-sdk/wiki/Singleton。
| 归档时间: |
|
| 查看次数: |
1472 次 |
| 最近记录: |