追踪者超时 - 如何更改超时设置?

时间:2011-06-24 08:57:59

标签: ruby beanstalkd

我有一些在高峰时段运行时间超过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

1 个答案:

答案 0 :(得分:3)

Stalker.enqueue有3个选项:作业名称字符串,参数哈希,选项哈希。

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

E.g。如果你有一些疯狂的计算,你希望花一个小时:

#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 hash和job args hash中符号和字符串的可互换性,在options hash中:ttr必须是符号。