我正在构建一个Python应用程序,该应用程序具有来自同一拉出队列的多个作品租赁任务。租赁任务时,我会仔细设置lease_seconds
,以确保工作人员有足够的时间完成工作并在租约到期之前删除任务。
租赁任务使其无法由其他工作人员处理, 直到租约到期为止。
对我来说,大多数时候都是如此。但是,在极少数情况下(每百次租约一次),另一个任务可能在其先前的租约到期之前由另一名工人租用。后端服务似乎无法锁定其可用性。
如何防止此类情况发生?
更新:
我刚刚发现我的工人实际上试图在重新发布有问题的任务之前将其删除。 到目前为止,这是我的观察。不确定所有结论是否有效,我将继续关注。