Delayed_job выполняет одно и то же задание несколько раз?

Я уже давно использую delayed_job без проблем; в основном для постановки в очередь вызовов ActionMailer (Notifier.send_later...). В последнее время он отправляет несколько случайных писем с одной и той же работы. Я поставлю в очередь одно электронное письмо и получу его пять раз, один или два раза одновременно. Я перезапустил delayed_job, и, похоже, он немного себя ведет. Кто-нибудь испытывает это?

Это мой журнал; Таких ошибок я еще не видел...

# Logfile created on 2010-02-11 by logger.rb
*** below you find the most recent exception thrown, this will be likely (but not certainly) the exception that made the application exit abnormally ***
#<NameError: uninitialized constant Delayed::Worker>
*** below you find all exception objects found in memory, some of them may have been thrown in your application, others may just be in memory because they are standard exceptions ***
#<NoMemoryError: failed to allocate memory>
#<SystemStackError: stack level too deep>
#<fatal: exception reentered>
#<LoadError: no such file to load -- tmail>
#<SystemExit: exit>
#<NameError: uninitialized constant Delayed::Worker::Merb>
#<NameError: uninitialized constant Merb>
#<NameError: uninitialized constant Delayed::Merb>
#<NameError: uninitialized constant Merb>
#<NameError: uninitialized constant Delayed::Merb>
#<NameError: uninitialized constant Delayed::Worker::Merb>
#<NameError: "Gems::DelayedJob-1.8.4::Lib::Delayed::Worker" is not a valid constant name!>
#<NameError: uninitialized constant Delayed::Worker>

person Matt Darby    schedule 12.02.2010    source источник


Ответы (2)


Когда вы развертываете новую версию своего приложения, обязательно убейте всех рабочих DJ и запустите только 1 (или сколько хотите — начните с 1 для отладки этой проблемы).

ps -ef | grep delayed_job
person Jonathan Julian    schedule 12.02.2010
comment
Проблема в том, что несколько рабочих процессов DJ имеют одно и то же имя рабочего процесса? При каких условиях более одного работника могут выполнять одну и ту же задачу? - person Alex D; 26.01.2012
comment
Работники с задержкой работы звонят в одно и то же время, нужно звонить после завершения работы или по одному работнику за раз - person Vishwas Nahar; 13.07.2018

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

person Mateus Luiz    schedule 19.12.2017