请考虑 SQL Server 中的下表:Tasks (Payload nvarchar, DateToExecute datetime, DateExecuted datetime null)。
现在我们有两个工作进程(在我们的例子中是 2 个 Azure 工作角色实例)。他们俩都定期尝试获取DateExecuted IS NULL AND DateToExecute <= GETDATE()的记录。然后他们处理该记录并将(SQL 更新)DateExecuted设置为当前日期。
问题是单个任务只能由单个工作实例处理一次。
为实现这种场景提供同步或锁定的最佳方式是什么?