Как заставить воркеры Sidekiq не загружать среду Rails

Приложение My Rails запускает рабочий процесс Sidekiq, который отправляет только текстовые сообщения. Я уверен, что для работы не нужна целая среда Rails (для отправки в качестве параметров требуется только телефон клиента и текст). Но в настоящее время рабочий загружает его и, таким образом, захватывает много памяти из моей крошечной капли DigitalOcean (как отдельное приложение Rails).

Есть ли способ указать рабочий путь к единственному файлу, который ему требуется?


person hedgesky    schedule 01.08.2015    source источник


Ответы (2)


Вы можете полностью отделить своего sidekiq worker от автономного (один или два файла) и запустить его как отдельный процесс в своем экземпляре цифрового океана. Затем в вашем приложении rails, когда вы будете готовы к выполнению работы, вы просто отправляете задание в Redis:

Sidekiq::Client.push({
    'class' => TextMessageWorker,
    'queue' => queue_name,
    'args'  => [number, message]
})

Для этого есть очевидные ограничения (без планирования AFAIK), но это должно удовлетворить ваши потребности для этого небольшого примера.

person Anthony    schedule 01.08.2015
comment
Хорошее предложение, я проверю. Спасибо! - person hedgesky; 01.08.2015

Вы можете использовать -r для запроса файла, а не загрузки Rails.

person Mike Perham    schedule 01.08.2015