Регистрация в delayed_job?
Я не могу получить вывод журнала из delayed_job
, и я не уверен, что мои задания начинаются.
Здесь мой Procfile:
web: bundle exec rails server
worker: bundle exec rake jobs:work
worker: bundle exec clockwork app/clock.rb
И вот работа:
class ScanningJob
def perform
logger.info "logging from delayed_job"
end
def after(job)
Rails.logger.info "logging from after delayed_job"
end
end
Я вижу, что выходные часы для системы выходят из системы, и я вижу, как запускается рабочий исполнитель, но я никогда не вижу, чтобы мои записи журналов попадали. Я пробовал puts
, но безрезультатно.
Мой файл часов довольно прост:
every(3.seconds, 'refreshlistings') { Delayed::Job.enqueue ScanningJob.new }
Я просто хочу, чтобы это работало, и отсутствие журналирования означает, что я не могу. Что здесь происходит?
Ответы
Ответ 1
Когда мне понадобился вывод журнала из Delayed Jobs, я нашел этот вопрос, чтобы быть довольно полезным.
В config/initializers/delayed_job.rb
добавляю строку:
Delayed::Worker.logger = Logger.new(File.join(Rails.root, 'log', 'dj.log'))
Затем в моей работе я вывожу в этот журнал с помощью:
Delayed::Worker.logger.debug("Log Entry")
Это приводит к тому, что файл log/dj.log
записывается в. Это работает в среде разработки, промежуточной и производственной среды.