gpt4 book ai didi

ruby - 我如何编写 "if a process is running for longer than n seconds, kill it"的 Resque 条件?

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:51 25 4
gpt4 key购买 nike

我有一个跨多个工作服务器的 god/resque 设置。每隔一段时间,工作人员就会被长轮询连接阻塞,并且不会正确超时。我们已经尝试围绕它进行编码(但不管它为什么不起作用),通过网络发送的保持事件数据包不会让我们轻易超时。

我希望某些 worker (我已经在他们自己的 watch block 中分割出来)不允许运行超过一定的时间。在 pesudocode 中,我正在寻找如下所示的监视条件(即,如果完成任务所需的时间超过 60 秒,则重新启动该工作人员):

w.transition(:up, :restart) do |on|
on.condition(:process_timer) do {|c| c.greater_than = 60.seconds}
end

任何有关如何实现此目的的想法或指示将不胜感激。

最佳答案

require 'timeout'
Timeout::timeout(60) do
...
end

关于ruby - 我如何编写 "if a process is running for longer than n seconds, kill it"的 Resque 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7505107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com