Как настроить ведение журнала 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, чтобы добавить дату / время. Я все еще работаю, чтобы определить, что соответствует моим потребностям.
Извините, моя последняя строка была действительно сфокусирована на примере окружающей среды, который я привел.
оригинал здесь: введите описание ссылки здесь