2014-07-07 1 views
1

sidekiq을 사용하여 백그라운드 작업을 처리하고 있는데 sidekiq을 처음 사용하는 것은 아닙니다.관리자 모델을 가지고있을 때 Sidekiq이 시작되지 않습니다.

문제 : 나는 유증 모델 이름 관리자가있는 경우

Sidekiq이 시작되지 않습니다.

class Admin < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :registerable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable 
end 

이 "admin"모델 클래스에 대한 의견을 제시하면 sidekiq는 정상적으로 작동합니다. 지금은 sidekiq 기본 구성을 사용하고 있습니다.

오류 역 추적 :

bundle exec sidekiq 
Admin is not a class 
/home/ninja/workspace/howismyschool/app/models/admin.rb:1:in `<top (required)>' 
/home/ninja/.rvm/gems/[email protected]/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:443:in `load' 
/home/ninja/.rvm/gems/[email protected]/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:443:in `block in load_file' 
/home/ninja/.rvm/gems/[email protected]/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:633:in `new_constants_in' 
/home/ninja/.rvm/gems/[email protected]/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:442:in `load_file' 
/home/ninja/.rvm/gems/[email protected]/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:342:in `require_or_load' 
/home/ninja/.rvm/gems/[email protected]/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:307:in `depend_on' 
/home/ninja/.rvm/gems/[email protected]/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:225:in `require_dependency' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/engine.rb:468:in `block (2 levels) in eager_load!' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/engine.rb:467:in `each' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/engine.rb:467:in `block in eager_load!' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/engine.rb:465:in `each' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/engine.rb:465:in `eager_load!' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/engine.rb:346:in `eager_load!' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/application/finisher.rb:58:in `each' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/application/finisher.rb:58:in `block in <module:Finisher>' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/initializable.rb:30:in `instance_exec' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/initializable.rb:30:in `run' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/initializable.rb:55:in `block in run_initializers' 
/home/ninja/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:226:in `block in tsort_each' 
/home/ninja/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component' 
/home/ninja/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:427:in `each_strongly_connected_component_from' 
/home/ninja/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:347:in `block in each_strongly_connected_component' 
/home/ninja/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:in `each' 
/home/ninja/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:in `call' 
/home/ninja/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:in `each_strongly_connected_component' 
/home/ninja/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:224:in `tsort_each' 
/home/ninja/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:205:in `tsort_each' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/initializable.rb:54:in `run_initializers' 
/home/ninja/.rvm/gems/[email protected]/gems/railties-4.1.4/lib/rails/application.rb:300:in `initialize!' 
/home/ninja/workspace/howismyschool/config/environment.rb:5:in `<top (required)>' 
/home/ninja/.rvm/gems/[email protected]/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:247:in `require' 
/home/ninja/.rvm/gems/[email protected]/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:247:in `block in require' 
/home/ninja/.rvm/gems/[email protected]/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:232:in `load_dependency' 
/home/ninja/.rvm/gems/[email protected]/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:247:in `require' 
/home/ninja/.rvm/gems/[email protected]/gems/sidekiq-3.2.0/lib/sidekiq/cli.rb:230:in `boot_system' 
/home/ninja/.rvm/gems/[email protected]/gems/sidekiq-3.2.0/lib/sidekiq/cli.rb:49:in `run' 
/home/ninja/.rvm/gems/[email protected]/gems/sidekiq-3.2.0/bin/sidekiq:8:in `<top (required)>' 
/home/ninja/.rvm/gems/[email protected]/bin/sidekiq:23:in `load' 
/home/ninja/.rvm/gems/[email protected]/bin/sidekiq:23:in `<main>' 
/home/ninja/.rvm/gems/[email protected]/bin/ruby_executable_hooks:15:in `eval' 
/home/ninja/.rvm/gems/[email protected]/bin/ruby_executable_hooks:15:in `<main>' 

응용 프로그램 환경 :

  • 루비 2.1.2
  • 레일 4.1.4
  • 우분투 14.04

답변

1

오류는 아니다 sidekiq와 관련있다. is not a class 예외의 원인은 이름 충돌 (어딘가에서 상수 Admin으로 정의) 때문일 가능성이 큽니다. 프로젝트가 Admin 상수인지 확인하고 이름을 변경하십시오. 콘솔 (IRB)의 오류를 재현하는 방법

는 :

1.9.3-p448 :001 > A = 1 
=> 1 
1.9.3-p448 :002 > class A 
1.9.3-p448 :003?> end 
TypeError: A is not a class 
+0

예,이 문제가 될 수 있습니다. 내 응용 프로그램에 설치된 activeadmin 가지고 있고 아마도이 이유가 될 것으로 보인다. activeadmin을 애플리케이션에서 완전히 주석 처리하면 sidekiq가 정상적으로 시작됩니다. 나는이 Admin 상수가 정의되었지만 찾을 수없는 곳을 찾기 위해 activeadmin 젬을 조사하고있었습니다. 문제는이 관리자 이름 충돌입니다. 그러나 어디에서 찾을 수 없습니다. 지금은 내 관리 클래스의 이름을 바꿀 것입니다. –

관련 문제