Как запустить и остановить работника delayed_jobs в потоке или подпроцессе для целей тестирования - PullRequest
1 голос
/ 10 марта 2011

Я хотел бы иметь возможность выполнять некоторые тесты, требующие запуска работника.

Для этого создан этот вспомогательный метод теста:

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

Так что я могу написать в своих тестах

with_delayed_jobs {
  ___test_content___
}

К сожалению, рабочий не кажетсябежать по этому пути.Может быть, я могу сделать это с процессами.У кого-нибудь есть идеи, как этого добиться?

1 Ответ

2 голосов
/ 10 марта 2011

Вы можете запустить задания, которые в данный момент находятся в вашей таблице заданий, с помощью:

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

Документы здесь, хотя они немногочисленны.

...