2016-09-07 7 views
2

セルロイドを使用する私のプロジェクトでプールを使用しようとしています。しかし、私はクラスinclude Sセルロイド(従ってCelluloid::ClassMethodsからメソッドを受け取る)にpoolメソッドを呼び出すたびに、私は一貫してエラーを取得:プールを使用しようとするとセルロイドがクラッシュする

NoMethodError: undefined method `services' for Celluloid:Module 
    router at /Users/my_username/.rvm/gems/jruby-9.0.5.0/gems/celluloid-supervision-0.20.6/lib/celluloid/supervision/deprecate/supervise.rb:54 
    supervise at /Users/my_username/.rvm/gems/jruby-9.0.5.0/gems/celluloid-supervision-0.20.6/lib/celluloid/supervision/deprecate/supervise.rb:6 
     pool at /Users/my_username/.rvm/gems/jruby-9.0.5.0/gems/celluloid-pool-0.20.5/lib/celluloid/supervision/container/behavior/pool.rb:13 
     <top> at celluloid_pool_test.rb:14 

具体的には、この部分が問題であると思われる:

NoMethodError: undefined method `services' for Celluloid:Module

違反行は/Users/my_username/.rvm/gems/jruby-9.0.5.0/gems/celluloid-supervision-0.20.6/lib/celluloid/supervision/deprecate/supervise.rb:54であることがわかります。それは、その行がCelluloid::Supervision.routerメソッドのコードを保持して判明:

def router(*_args) 
    # TODO: Actually route, based on :branch, if present; or else: 
    Celluloid.services ### this line is what causes the error 
end 

問題は私の特定のプロジェクトではなかったことを確認するために、私はプールを利用するthis articleからのサンプルコードをつかんで、それを実行しようとしました。

require 'celluloid' 
require 'mathn' 

class PrimeWorker 
    include Celluloid 

    def prime(number) 
    if number.prime? 
     puts number 
    end 
    end 
end 

pool = PrimeWorker.pool 

(2..1000).to_a.map do |i| 
    pool.prime! i 
end 

sleep 100 

それは私のプロジェクトとまったく同じエラーで失敗しました:

は最後に、私はpoolservicesに関するエラーをトリガするものであるかどうかを確認するためにIRBのコードの死者シンプルな作品を走った:

class Foo 
    include Celluloid 
end 
Foo.pool 

確かに、私はまったく同じエラーを受けました。セルロイドにバグがあるか、依存関係を適切にロードしていないようです。しかし、私はrequire 'celluloid/supervision'をこれを解決する私の試みで無駄にしました。私の最後に何か間違っているのですか、これはセルロイドのバグですか?

答えて

1

https://github.com/celluloid/celluloid-pool/issues/10の前に他の人がこの問題に遭遇したようです。私はそれはCelluloid.servicesと非難され、セルフロイドの新しいバージョンでは動作しないことと関係があると思うので、ちょうどrequire 'celluloid'よりもrequire 'celluloid/current'を使用するとそのトリックを行うようです。

+0

これは正解です。 – digitalextremist

関連する問題