在 Beanstalkd 中,当一个作业命中 TTR 时,它将杀死处理该作业的工作人员并将该作业释放回池中。在我们的系统中,这应该是一个非常罕见的事件,在这种情况下,我宁愿埋葬这份工作。
怎么做呢?
(如果重要的话,我们使用 PHP + Pheanstalk)
在 Beanstalkd 中,当一个作业命中 TTR 时,它将杀死处理该作业的工作人员并将该作业释放回池中。在我们的系统中,这应该是一个非常罕见的事件,在这种情况下,我宁愿埋葬这份工作。
怎么做呢?
(如果重要的话,我们使用 PHP + Pheanstalk)
在我看来,您没有正确实施协议。你需要处理DEADLINE_SOON
,并且做TOUCH
。
DEADLINE_SOON 是什么意思?
DEADLINE_SOON
是对保留命令的响应,表明您保留了一个截止日期很快的作业(当前安全裕度约为 1 秒)。
如果您经常收到DEADLINE_SOON
保留错误,您可能应该考虑增加您的工作的 TTR,因为它通常表明您没有及时完成它们。也可能是您在完成任务后未能删除它们。
有关更多信息,请参阅邮件列表讨论。
TTR 是如何工作的?
TTR
仅适用于保留时的作业。在这种情况下,计时器(在作业统计中称为“剩余时间”)从作业的TTR
.
“触摸”命令
允许工作人员请求更多时间从事工作。这对于可能需要很长时间的工作很有用,但您仍然希望TTR
从反应迟钝的工人那里获得工作的好处。工作人员可能会定期告诉服务器它还活着并正在处理一项工作(例如,它可能会在 上执行此操作DEADLINE_SOON
)。该命令将保留作业的自动释放推迟到TTR
发出该命令的几秒钟后。