Я использую Sidekiq для выполнения некоторых фоновых задач. Я также пытаюсь записать некоторые сообщения от этих заданий в файл журнала, но мне не удалось выполнить эту простую задачу.
Пример работы, которой я занимаюсь
class TestJob < ApplicationJob
queue_as :default
def perform
text = 'Print me to a file!'
Rails.logger.error "Rails.logger.info : #{text}"
logger.error "logger.info : #{text}"
end
end
Запуск TestJob.perform_now
, например, в действии контроллера, работает, как и ожидалось, печатая сообщения на выходе терминала сервера, а также на logs/development.log
.
Но запуск TestJob.perform_later
не печатает мои сообщения. В любом месте. Ни к терминалу Sidekiq, ни к серверному терминалу, ни к файлам журналов, ни к чему.
Я попытался перенаправить журналы, как это было предложено в вики Sidekiq Logging. Но и там сообщения не печатались.
Я чувствую, что могу упустить что-то важное.
log/sidekiq.log
будет иметь записиstart
иdone
дляTestJob
. Нет ли там ошибок? - person cschroed   schedule 04.12.2019perform
:raise Rails.logger.inspect
. Затем в очереди Sidekiq Dead Job вы увидите дополнительную информацию о том, каков уровень журнала и куда он отправляет свои выходные данные. - person cschroed   schedule 08.12.2019