質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

2286閲覧

NameError: uninitialized constant Sidekiq::Loggingの解決方法

mashoo

総合スコア8

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/01/16 16:21

開発環境

いつもお世話になっております。
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が実行されます。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こちら、自分も全く同じエラーが出ました。
どうやらsidekiqのバージョンが新しすぎるのが原因みたいです。

Gemfileにバージョンを指定して
gem 'sidekiq', '~> 5.0' 
bundle install
sidekiqを再起動
でいけました。

投稿2020/01/29 05:48

Yohei04

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mashoo

2020/02/01 07:31

ありがとうございます。無事実行できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問