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)
今のところ動作しているようで、アクターは 1 秒後にシャットダウンされます。
y.value
しかし、上記のように値にアクセスしようとすると、メソッド呼び出しから返された値が利用可能になるまで続きます。
私の考えは、標準 の Timeout.timeout(1) {}と同じように Celluloid.shutdown_timeout を使用することでした
制限時間の 1 秒を超えた場合はブロックを終了します [ Timeout.timeout(1)は不正行為で悪名高いため、使用しないでください]
セルロイド俳優を使用してこれを達成する正しい方法は何ですか?