現在、作成したActiveJobがあり、Sidekiqを使用してキューに入れています。ジョブをデバッグしたいのですが、プログラムしたメッセージを表示するには、ログファイルを確認する必要があります。 Railsコンソールでジョブ内のputs
メッセージを表示できる方が便利だと思います。perform_later
メソッドを実行すると、 Rails consoleはジョブをキューに入れるだけで、コンソールにメッセージが表示されることはありません。コンソールに表示される場所にメッセージを表示する方法はありますか?
perform_now
でジョブを実行できます。
例えば...
class Foo < ActiveJob::Base
def perform(arg1)
puts "Hello #{arg1}"
end
end
Foo.perform_now('world')
キューアダプタを一時的にインラインに設定できます。
現在、application.rb
のコードは次のようになります。
Rails.application.config.active_job.queue_adapter = :sidekiq
行をコメントアウトするだけです
# Rails.application.config.active_job.queue_adapter = :sidekiq
これにより、ジョブがインラインで実行され、コンソールに結果が表示されます。
Development.rbに追加できる構成行があります
require 'sidekiq/testing/inline'
これにより、開発用のインラインテストが可能になります。