require 'celluloid/current'
Celluloid.shutdown_timeout = 1
class Mapper
include Celluloid
attr_accessor :value
def run(num)
@value = num.times.map { |idx| idx }
end
end
y = Mapper.spawn
y.future.run(1000000)
を使用している間Celluloid.shutdown_timeout持つすべての俳優を終了するどのように動作するようだと役者は1秒後にシャットダウンされている今まで。セルロイド俳優 - 先物
y.value
しかし、メソッド呼び出しから返された値が利用可能になるまで、私は上記のような値にアクセスしようとした瞬間、それは続きます。
私の考えは、(1)がTimeout.timeout [ちょうど標準Timeout.timeout(1){}
ようCelluloid.shutdown_timeoutを使用して、1秒の時間制限を超えた場合、ブロックを終了するましたそれを使用していないと悪名高い]
セルロイドアクターを使ってこれを達成する正しい方法はありますか?