【问题标题】:Stalker Timeout - How do I change the timeout settings?Stalker Timeout - 如何更改超时设置?
【发布时间】:2011-06-24 08:57:59
【问题描述】:

我有一些作业在高峰时段运行时间超过 119 秒,但当它发生时,我不断收到下面的跟踪错误。我正在使用stalkerbeanstalkdclockwork 进行后台处理。在哪里/如何更改超时设置?

Exception Stalker::JobTimeout -> find.products hit 119s timeout
   /home/blake/.rvm/gems/ruby-1.9.2-p180/gems/stalker-0.9.0/lib/stalker.rb:86:in

【问题讨论】:

    标签: ruby beanstalkd


    【解决方案1】:

    Stalker.enqueue 有 3 个选项:作业名称字符串、参数散列、选项散列。

    选项哈希可以采用键/值对:ttr => timeout_in_seconds,您可能猜到,它设置 Stalker 在引发 JobTimeout 异常之前允许的秒数。

    例如如果你有一些疯狂的计算,你预计需要一个小时:

    #job code
    job 'crazy.calculation' do |args|
      args['x'].to_i + args['y'].to_i + args['z'].to_i
    end
    
    #queuing code
    Stalker.enqueue 'crazy.calculation', {:x => 1, :y => 2, :z => 3}, {:ttr => 3600}
    

    如果您的计算不带参数,则使用相同的代码

    #job code
    job 'crazy.calculation' do |args|
      1 + 2 + 3
    end
    
    #queuing code
    Stalker.enqueue 'crazy.calculation', {}, {:ttr => 3600}
    

    不要对 enqueue args 散列和作业 args 散列中的符号和字符串的互换性感到困惑,在选项散列中:ttr 必须是符号。

    【讨论】:

    • 从 beanstalkd 的角度来看,更改 ttr 不是一个好的选择。您应该在执行耗时的操作时使用 'touch'。但是,此功能未在 stalker 中实现。
    • 对如何触摸beantalkd有什么建议吗?是否可以将其包含在 Stalker 工作中?与计时一样,当它达到 115 秒时,触摸豆茎。
    猜你喜欢
    • 1970-01-01
    • 2022-12-05
    • 2013-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多