Rails 5.1.4サーバ(Puma v。3.10.0シングルモード)を実行していますが、正しくエンキューされる特定のActionJobに問題があります。実行されます。Rails 5.1 ActiveJob on Pumaが特定のエンキュージョブを実行していない
私はいくつかの仕事をしています。特定のジョブを除くすべてのジョブは、エンキューした直後に期待どおりに非同期に実行されます。
初めてサーバーを再起動した後、特定のジョブは新しいキューイングの後に正しく実行されます。しかし、最初の成功した実行後、それはエンキューすることに続いて実行されません。
私はすべてのジョブを一般にperform_later
でキューに入れています。
rails console
を使用して、特定のジョブのキューイングをテストしました。コンソールにキューイングするたびに、即座に実行されます。同じセッションでさえrails server
にキューイングされるときにアプリケーションで使用されているのと同じ引数で試してみましたが、サーバーではキューに入れられます。決して実行されません。
私はログファイルをチェックしました。何もない、エラーはありません、致命的ではない、警告はありません。単に[ActiveJob] Enqueued FooBaaJob
と記載していますが、ジョブを実行することはありません。
ジョブが実際に失敗した場合でも、少なくともログには[ActiveJob] [FooBaaJob] [id] Performing FooBaaJob
を書き出す必要がありますが、それはできません。 そして、https://github.com/rails/rails/blob/master/activejob/lib/active_job/logging.rb#L78は、実際に失敗した場合に例外をキャッチしてログに記録する必要があります。第二に、コンソールで実行することは決してできないので、そうではないはずです。
どこから見たらいいですか?
開発環境に合わせてジョブキューがどのように設定されていますか? –
'async'(デフォルト - 明示的に設定されていません)と' default'キュー内のすべてのジョブ。ジョブ・キュー 'inline'を実行しようとするたびに、ジョブは常に正常に実行されます。 – mtrolle
そして、あなたは1つのスレッドしか許さない設定をPumaに渡していますか? 'async'が新しいスレッドを生成するので、これはおそらくあなたの問題でしょうか? –