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 }
私はただこれが機能することを望んでいますが、ロギングの欠如は私ができないことを意味します。何が起きてる?
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
に書き込まれます。これは、開発、ステージング、および実稼働環境で機能します。