Да, вы можете, но я не уверен, какая выгода будет. Вы говорите, что не хотите, чтобы работники работали постоянно - что вас беспокоит? Использование памяти? Соединения с базой данных?
Чтобы снизить задержку задержки в вашей системе, я бы запустил только одного работника и большую часть времени настраивал его на сон.
Delayed::Worker::sleep_delay = 60 * 5 # in your initializer.rb
Один работник будет просыпаться и проверять базу данных на наличие новых заданий каждые 5 минут. Такой способ не дает вам слишком много настраивать.
Но если вы действительно хотите запустить Delayed::Worker
программно, найдите в этом классе work_off
и реализуйте свой собственный script/run_jobs_and_exit
скрипт. Вероятно, он должен выглядеть так же, как script/delayed_job
- 3 строки.