【问题标题】:how to schedule for every 30 seconds with sidekiq-scheduler如何使用 sidekiq-scheduler 每 30 秒安排一次
【发布时间】:2016-07-27 10:21:20
【问题描述】:

我正在处理 ROR 申请。 我有一个功能要求,我必须调用一个方法 每 30 秒使用 sidekiq

我正在使用这些宝石

# sidekiq
gem 'sidekiq', '~> 3.3.0'
# sidekiq scheduler
gem 'sidekiq-scheduler', '~> 2.0'

这是我的 scheduler.yml 文件代码。

perform:
  every: ["30s"]
  class: Aggregator
  queue: aggregation
  description: "This job will create Aggregate data."

这是我在 Workers 文件夹中的聚合器类。

class Aggregator
  include Sidekiq::Worker
  sidekiq_options :backtrace => 5, :retry => false

  def perform
    end_time = time - (time.sec%30).seconds
    puts "ROUNDING TO 30 SEC"
    puts end_time    
   Session.create_aggregate_data(end_time)
  end
end

当我检查 sidekiq 日志时,它没有命中 perform 方法。但是聚合器类被调用了

这里是日志..

2016-07-27T10:19:59.436Z 15117 TID-1qjnlu INFO: queueing Aggregator (perform)
2016-07-27T10:20:29.641Z 15117 TID-1qjnlu INFO: queueing Aggregator (perform)
2016-07-27T10:20:59.836Z 15117 TID-1qjnlu INFO: queueing Aggregator (perform)
2016-07-27T10:21:30.009Z 15117 TID-1qjnlu INFO: queueing Aggregator (perform)
2016-07-27T10:22:00.204Z 15117 TID-1qjnlu INFO: queueing Aggregator (perform)
2016-07-27T10:22:30.507Z 15117 TID-1qjnlu INFO: queueing Aggregator (perform)
2016-07-27T10:23:00.509Z 15117 TID-1qjnlu INFO: queueing Aggregator (perform)
2016-07-27T10:23:30.760Z 15117 TID-1qjnlu INFO: queueing Aggregator (perform)
2016-07-27T10:24:01.068Z 15117 TID-1qjnlu INFO: queueing Aggregator (perform)

【问题讨论】:

  • 所以作业正在排队,但它们没有被处理。愚蠢的问题:你开始使用sidekiq了吗? bundle exec sidekiq ?
  • 感谢您的回复.. @MrWillihog。当我运行“sidekiq”命令时,这些日志即将到来

标签: ruby-on-rails scheduler sidekiq ruby-on-rails-4.1


【解决方案1】:

如果您没有配置非默认队列,请尝试将队列设置为默认值

queue: default

【讨论】:

  • 不,Worker 不需要以 Worker 结尾,这只是命名约定。
猜你喜欢
  • 2016-08-14
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 2023-04-11
  • 1970-01-01
  • 2017-07-14
  • 2011-11-06
  • 2017-11-08
相关资源
最近更新 更多