Как настроить ведение журнала queue_classic

Я нигде не мог найти решение, как заставить queue_classic записывать логи в файл. Свитки, которые Queue_Classic использует для ведения журнала, похоже, также не имеют никакого примера.

Может ли кто-нибудь привести рабочий пример?

1 ответ

Регистрация в методе, вызываемом QC, будет источником регистрации. Например, в рельсах. Любой вызов Rails.logger будет идти в файл журнала, соответствующий вашему RAILS_ENV. Данные журнала, поступающие со свитков, поступают в стандартный вывод, поэтому при запуске их можно направить STDOUT из очередей в файл журнала.

Вы можете управлять своими очередями с помощью god.rb, предоставляя экземпляр конфигурации god.rb, подобный следующему (я оставил вашу конфигурацию для количества очередей, каталогов и т. Д. На ваше усмотрение):

number_queues.times do |queue_num|
  God.watch do |w|
    w.name = "QC-#{queue_num}"
    w.group = "QC"
    w.interval = 5.minutes
    w.start = "bundle exec rake queue:work" # This is your rake task to start QC listening
    w.gid = 'nginx' 
    w.uid = 'nginx'
    w.dir = rails_root
    w.keepalive
    w.env = {"RAILS_ENV" => rails_env} 
    w.log = "#{log_dir}/qc.stdout.log"  # Or....    "#{log_dir}//qc-#{queue_num}.stdout.log"

    # determine the state on startup
    w.transition(:init, { true => :up, false => :start }) do |on|
      on.condition(:process_running) do |c|
        c.running = true
      end
    end
  end
end

Между прочим, я нахожу, что данные журнала STDOUT менее чем полезны и могут в конечном итоге просто отправить их в битовую корзину.

Если данные журнала бесполезны, мы должны рассмотреть их удаление.

DEBUG очень хорош, когда я запускаю его из командной строки. Временами, когда я пытаюсь выяснить, что я сделал, чтобы все наладить (обычно проблемы с пакетами, проблемы с путями и т. Д.). Или времена, когда я собираюсь продемонстрировать, что происходит в очереди.

Для меня ведение журнала INFO состоит из стандартного сообщения lib=queue_classic level=info action=insert_job elapsed=16 и любого STDOUT/STDERR из разветвленных исполнений или из PostgreSQL. Я не расширил ни один из классов журналирования, поскольку scrolls переходит в STDOUT, а мои задачи находятся в среде, которая обеспечивает журналирование.

Конечно, это может быть удалено. Я думаю, что ДЕЙСТВИТЕЛЬНО зависит от окружающей среды и от того, что делает очередь. Если бы я делал что-то без Rails.logger, я бы использовал QC.log и более эффективно прокручивал, и таким образом выполнял свои задачи.

Играя с ним, я могу сохранить свою конфигурацию как есть только из-за выходных данных, поступающих от методов / приложений, вызываемых самими задачами. Я мог бы решить переопределить код QC.log, чтобы добавить дату / время. Я все еще работаю, чтобы определить, что соответствует моим потребностям.

Извините, моя последняя строка была действительно сфокусирована на примере окружающей среды, который я привел.

оригинал здесь: введите описание ссылки здесь

Другие вопросы по тегам