開発環境
いつもお世話になっております。
RailsのActive_Jobを使って、非同期処理の機能を実装しています。
非同期処理に使用したツールと環境は以下の通りです。
- radis (5.0.7)
- sidekiq (6.0.4)
- Rails (5.2.4.1)
Jobを記述する前に設定したこと
config/environments/development.rbに以下の内容を追記
ruby
1config.active_job.queue_adapter = :sidekiq
作成したJob、Jobの実行
ruby
1class SampleJob < ApplicationJob 2 3 queue_as :default 4 5 def perform(*args) 6 Sidekiq::Logging.logger.info "サンプルジョブを実行しました" 7 end 8end
postが保存された後に、Sidekiqのターミナルにログを表示させるだけの機能になっています。
ruby
1#app/controllers/ 2def create 3 @post=current_user.posts.new(post_params) 4 5 if @post.save 6 SampleJob.perform_later #ジョブの呼び出し 7 redirect_to posts_url, notice: " 「#{@post.name}」を登録しました" 8 else 9 render :new 10 end 11 end
実行結果
ブラウザからpostを作成する前に実行したコマンドは以下の通りです。
bin/rails server radis-server bundle exec sidekiq
以下はブラウザからpostを保存した時の、sidekiqのコンソールに表示されたログになります
2020-01-16T16:03:33.940Z pid=43824 tid=owjr8z4ho INFO: Booted Rails 5.2.4.1 application in development environment 2020-01-16T16:03:33.940Z pid=43824 tid=owjr8z4ho INFO: Running in ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin18] 2020-01-16T16:03:33.940Z pid=43824 tid=owjr8z4ho INFO: See LICENSE and the LGPL-3.0 for licensing details. 2020-01-16T16:03:33.940Z pid=43824 tid=owjr8z4ho INFO: Upgrade to Sidekiq Pro for more features and support: http://sidekiq.org 2020-01-16T16:03:33.940Z pid=43824 tid=owjr8z4ho INFO: Booting Sidekiq 6.0.4 with redis options {:id=>"Sidekiq-server-PID-43824", :url=>nil} 2020-01-16T16:03:33.945Z pid=43824 tid=owjr8z4ho INFO: Starting processing, hit Ctrl-C to stop 2020-01-16T16:03:44.885Z pid=43824 tid=owjrj5zdg class=SampleJob jid=d90eb0b5105b9093c15452ca INFO: start 2020-01-16T16:03:45.313Z pid=43824 tid=owjroo6jg class=SampleJob jid=057d34ba22dde79ea778dd60 INFO: start 2020-01-16T16:03:45.316Z pid=43824 tid=owjroo6gg class=SampleJob jid=0d436a0954c55dfb2ab751a0 INFO: start 2020-01-16T16:03:45.319Z pid=43824 tid=owjrj61kk class=SampleJob jid=b0f9ab9b64a60f8a471d6ceb INFO: start 2020-01-16T16:03:45.331Z pid=43824 tid=owjroo6jg class=SampleJob jid=057d34ba22dde79ea778dd60 elapsed=0.018 INFO: fail 2020-01-16T16:03:45.332Z pid=43824 tid=owjroo6jg WARN: {"context":"Job raised exception","job":{"retry":true,"queue":"default","class":"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper","wrapped":"SampleJob ","args":[{"job_class":"SampleJob","job_id":"5c6a968e-c1b2-4b82-9522-b70e473c8c38","provider_job_id":null,"queue_name":"default","priority":null,"arguments":[],"executions":0,"locale":"ja"}],"jid":"057d34ba22dd e79ea778dd60","created_at":1579189716.435788,"enqueued_at":1579190625.312968,"error_message":"uninitialized constant Sidekiq::Logging","error_class":"NameError","failed_at":1579189716.866282,"retry_count":1,"re tried_at":1579189747.129893},"jobstr":"{\"retry\":true,\"queue\":\"default\",\"class\":\"ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper\",\"wrapped\":\"SampleJob\",\"args\":[{\"job_class\":\"SampleJob\",\ "job_id\":\"5c6a968e-c1b2-4b82-9522-b70e473c8c38\",\"provider_job_id\":null,\"queue_name\":\"default\",\"priority\":null,\"arguments\":[],\"executions\":0,\"locale\":\"ja\"}],\"jid\":\"057d34ba22dde79ea778dd60\ ",\"created_at\":1579189716.435788,\"enqueued_at\":1579190625.312968,\"error_message\":\"uninitialized constant Sidekiq::Logging\",\"error_class\":\"NameError\",\"failed_at\":1579189716.866282,\"retry_count\":1 ,\"retried_at\":1579189747.129893}"} 2020-01-16T16:03:45.333Z pid=43824 tid=owjroo6jg WARN: NameError: uninitialized constant Sidekiq::Logging 2020-01-16T16:03:45.333Z pid=43824 tid=owjroo6jg WARN: /Users/mashoo/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.5/lib/bootsnap/load_path_cache/core_ext/active_support.rb:79:in `block in load_mi ssing_constant'
NameError: uninitialized constant Sidekiq::Logging より、読み込むファイルが欠けていて期待どおり動いていない気がします。
過去の記事やissueを見てみましたが、自分の力だけでは解決できそうにないので質問させていただきました。
ちなみに、Sidekiq::Logging.logger.info "サンプルジョブを実行しました"の行をコメントアウトすると、ちゃんとJobが実行されます。
よろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/01 07:31