3

Resque/Resque-Scheduler がバックグラウンド ジョブを実行している Puma サーバー上に Rails 4 アプリがあります。私が知りたいのは、2 つの Resque ワーカーのログ出力をサーバー ログにマージする方法、またはそれは不可能ですが、Resque ワーカーのログ出力を表示する方法です。現在、ワーカーのログ出力を表示する方法を理解できていないため、内部で何が起こっているのかわかりません。この blogpostを見つけました。これは、ファイルに次のようなものを追加することを提案していresque.rakeます:

task "resque:setup" => :environment do
  Resque.before_fork = Proc.new { 
    ActiveRecord::Base.establish_connection

    # Open the new separate log file
    logfile = File.open(File.join(Rails.root, 'log', 'resque.log'), 'a')

    # Activate file synchronization
    logfile.sync = true

    # Create a new buffered logger
    Resque.logger = ActiveSupport::BufferedLogger.new(logfile)
    Resque.logger.level = Logger::INFO
    Resque.logger.info "Resque Logger Initialized!"
  }
end

それはうまくいきませんでした。コメントで に置き換える提案も試しましたが、それResque.logger = ActiveSupport::BufferedLogger.new(logfile)Resque.logger = ActiveSupport::Logger.new(logfile)うまくいきませんでした。2 番目のオプションを使用してもNoMethodError: undefined method 'logger=' for Resque:Module、ワーカーを起動しようとするとエラーが発生します。

ここに私の現在のresque.rakeファイルがあります:

require 'resque/tasks'
require 'resque_scheduler/tasks'

namespace :resque do
    puts "Loading Rails environment for Resque"
    task :setup => :environment do
        require 'resque'
        require 'resque_scheduler'
        require 'resque/scheduler'
        require 'postman'
    end
end

私はロギングに関する Resque のドキュメントを見てきましたが、Rails でのロギングについてあまり知らないので、そこにあるものの使い方がわかりません。この件に関する他の有用なリソースを見つけることができませんでした。

4

2 に答える 2