ruby-on-rails - perform - rails delayed_job_active_record
Iniciando sesión en delayyed_job? (1)
Cuando necesitaba la salida de registro de Trabajos diferidos, encontré esta pregunta bastante útil.
En config/initializers/delayed_job.rb
agrego la línea:
Delayed::Worker.logger = Logger.new(File.join(Rails.root, ''log'', ''dj.log''))
Luego, en mi trabajo, salgo a este registro con:
Delayed::Worker.logger.debug("Log Entry")
Esto da como resultado el log/dj.log
del archivo log/dj.log
. Esto funciona en entornos de desarrollo, puesta en escena y producción.
No puedo obtener ningún resultado de registro de delayed_job
, y no estoy seguro de que mis trabajos estén comenzando.
Aquí está mi archivo de registro:
web: bundle exec rails server
worker: bundle exec rake jobs:work
worker: bundle exec clockwork app/clock.rb
Y aquí está el trabajo:
class ScanningJob
def perform
logger.info "logging from delayed_job"
end
def after(job)
Rails.logger.info "logging from after delayed_job"
end
end
Veo que las salidas del mecanismo de salida del sistema, y puedo ver que el ejecutor del trabajador está comenzando, pero nunca veo que lleguen mis instrucciones de registro. Intenté puts
también en vano.
Mi archivo de reloj es bastante simple:
every(3.seconds, ''refreshlistings'') { Delayed::Job.enqueue ScanningJob.new }
Solo quiero ver que esto funcione, y la falta de registro significa que no puedo. ¿Que está pasando aqui?