ruby - Stalker 超时 - 如何更改超时设置?

标签 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

最佳答案

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}

不要对入队参数哈希和作业参数哈希中符号和字符串的可互换性感到困惑,在选项哈希中:ttr 必须是符号。

关于ruby - Stalker 超时 - 如何更改超时设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6465581/

相关文章:

laravel - Ubuntu Server 启动时 Supervisor 不会自动启动

ruby-on-rails - 使用 Ruby on Rails 保持项目列表有序的最佳方法是什么?

ruby-on-rails - 为 Rails 中的所有 Controller 创建一个全局变量

ruby - 在多维哈希中查找和替换 - Ruby

php - 如何在 Laravel 队列中使用模型

php - 使用 Beanstalk 在 Laravel 4 中找不到类 'Pheanstalk_Pheanstalk'

php - Beanstalk 获取套接字错误 110 : Connection timed out

ruby-on-rails - 是否可以使 Ohm for Ruby 中的整个对象的内容过期?

ruby-on-rails - 在允许用户使用设计(rails)登录之前检查用户是否处于事件状态

laravel - Beanstalkd 支持多服务器和负载平衡