Gem sidekiq log 疑惑?

kee · 2014年02月18日 · 最后由 kee 回复于 2014年02月18日 · 3005 次阅读
class PygmentsWorker
  include Sidekiq::Worker
  sidekiq_options queue: "high"
  # sidekiq_options retry: false

  def perform(snippet_id)
    # hard work
  end
end
$sidekiq -C config/sidekiq.yml -d -L log/sidekiq.log -P tmp/pids/sidekiq.pid
$rails c
$PygmentsWorker.perform_async(3)

为什么 sidekiq.log 只在sidekiq -C config/sidekiq.yml -d -L log/sidekiq.log -P tmp/pids/sidekiq.pid时写入,调用PygmentsWorker.perform_async(3)时不写入任何东西? sidekiq 异步执行的 code 如何 debugger?

异步的调试肯定麻烦啊。还是写好单元测试吧。

你只要测试你自己写的代码就行了,至于异步,sidekiq 有写测试代码的

class PygmentsWorker
  include Sidekiq::Worker
  sidekiq_options queue: "high"
  # sidekiq_options retry: false

  def perform(snippet_id)
    run(snippet_id)
  end

  def run(snippet_id)
  #code
  end
end

测试代码测试 run 方法就行了

PygmentsWorker.new.run  #之后写你自己的断言
3 楼 已删除

是因为指派了一个不存在的 queue "high" 导致 perform 不执行 在 c 或 m 里测试好了,再移到 worker 即可 thx for reply

需要 登录 后方可回复, 如果你还没有账号请 注册新账号