gpt4 book ai didi

ruby - Celluloid SupervisionGroup 不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 09:01:54 30 4
gpt4 key购买 nike

为了理解赛璐珞,我写了下面的脚本。

require 'celluloid/current'

class Processor
include Celluloid

def perfom(number)
puts "#{number} ... (#{Thread.current}) ..."
sleep(number%3)
puts "Launch finish!"
return number
end
end

pool = Processor.pool(size: 3)

futures = (1..7).map do |i|
pool.future(:perfom, i)
end
puts futures.map(&:value)

pool.terminate

一切正常,我想避免在池中调用终止。

所以我尝试使用 supervisor 但它引发了我 uninitialized constant Celluloid::SupervisionGroup

搜索后我找到了这个(在弃用的文件夹中):(https://github.com/celluloid/celluloid-supervision/blob/master/spec/celluloid/deprecate/supervision/supervision_group_spec.rb)

我想做这样的工作:

supervisor = Celluloid::SupervisionGroup.run!
pool = supervisor.pool(Processor, size: 3, as: :worker)

futures = (1..7).map do |i|
pool[:worker].future(:perfom, i)
end
puts futures.map(&:value)

我如何使用新系统让工作、主管和人才共享 future ?

最佳答案

Celluloid::SupervisionGroup 重命名为 Celluloid::Supervision::Container

参见 https://github.com/celluloid/celluloid/wiki/DEPRECATION-WARNING

关于ruby - Celluloid SupervisionGroup 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33446959/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com