Как да накарам работниците на Sidekiq да не зареждат Rails среда

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

Има ли някакъв начин да кажете на работния път до единствения файл, който трябва да изисква?


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


Отговори (2)


Можете напълно да отделите вашия sidekiq worker, за да бъде самостоятелен (един или два файла) и да го стартирате като отделен процес на вашето цифрово копие на океана. След това във вашето приложение за релси, когато сте готови да свършите работа, просто ще бутнете задача в 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