首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改beanstalkd默认TTR

更改beanstalkd默认TTR
EN

Stack Overflow用户
提问于 2014-09-11 15:36:11
回答 2查看 2.8K关注 0票数 4

我使用标准的beanstalkd作为服务运行/etc/default/beanstalkd

有时,当我试图删除作业时,我的代码会抛出一个NOT_FOUND错误,因为它是由于超过TTR而释放的。我想增加TTR的所有工作,被插入到管。

是否有一种为beanstalkd 作业设置默认TTR的方法?--我的猜测是,我可以在/etc/ default /beanstalkd中更改它,但在beanstalkd文档中找不到。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-11 16:29:45

没有一种方法可以在/etc/ default /beanstalkd或其他地方设置全局默认值,但是设置包装器函数/类非常容易,所有作业都可以通过这个函数/类插入队列,如果没有专门设置TTR ( PUT命令的参数)。

在beanstalkc中,这将覆盖/替换put函数。

代码语言:javascript
复制
def put(self, body, priority=DEFAULT_PRIORITY, delay=0, ttr=DEFAULT_TTR):
票数 4
EN

Stack Overflow用户

发布于 2014-09-12 13:24:10

在我看来,你没有正确地执行协议。您需要处理DEADLINE_SOON,并执行TOUCH

DEADLINE_SOON是什么意思?

DEADLINE_SOON是对备用命令的响应,指示您保留了一个任务,该任务的截止日期很短(当前的安全裕度约为1秒)。

如果您经常收到保留的DEADLINE_SOON错误,您可能应该考虑增加工作中的TTR,因为它通常表明您没有及时完成这些错误。这也可能是因为当您完成任务时,无法删除它们。

有关更多信息,请参见邮件列表讨论

TTR是如何工作的?

TTR只在职务被保留时才适用于它。在这种情况下,一个定时器(作业统计中称为“时间-左”)开始从作业的TTR中计数。

  • 如果计时器达到零,作业将被放回就绪队列中。
  • 如果作业在计时器用完之前被掩埋、删除或释放,则定时器将停止存在。
  • 如果任务在计时器达到零之前被触摸“ed”,则计时器从TTR开始重计数。

“触摸”命令

允许员工请求更多时间从事工作。这对于可能需要很长时间的工作是有用的,但您仍然希望TTR将工作从没有响应能力的员工中分离出来。工作人员可能会周期性地告诉服务器,它仍然在运行并处理一个作业(例如,它可以在DEADLINE_SOON上这样做)。该命令将保留作业的自动释放推迟到发出命令后的TTR秒。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25791633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档