Подтвердить что ты не робот

Регистрация в 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 }

Я просто хочу, чтобы это работало, и отсутствие журналирования означает, что я не могу. Что здесь происходит?

4b9b3361

Ответ 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 записывается в. Это работает в среде разработки, промежуточной и производственной среды.