开发者

How to run and stop a delayed_jobs worker in a Thread or Subprocess for testing purposes

I would like to be able to perform some tests that require a worker to be running.

In order to accompli开发者_StackOverflow中文版sh this created this test helper method:

def with_delayed_jobs
  t=Thread.new {Delayed::Worker.new.start}
  sleep(5)
  yield
  t.exit
end

So I can write in my tests

with_delayed_jobs {
  ___test_content___
}

Unfortunately, the worker doesn't seem to run this way. Maybe I can do it with processes. Does anybody have an idea on how to accomplish this?


You can run the jobs that are currently in your jobs table with this:

 Delayed::Worker.new(
          :max_priority => nil,
          :min_priority => nil,
          :quiet => true
        ).work_off

Docs are here, although they are sparse.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜