0
我有以下程序结构。赛璐珞调整大小池
client = Client.new
params = client.get_params
pool = client.pool(size: params.size)
futures = params.map do |p|
pool.future(:perform_work, p)
end
futures.map(&:value)
客户端是启用赛璐珞的类,使用include Celluloid
。这很有效,直到我尝试在循环中执行程序。我需要根据从外部数据馈送收到的参数数量动态调整工作人员的大小。
client = Client.new
pool = client.pool(size: 1)
loop do
params = client.get_params
....
**? pool.resize(size: params.size) ?**
....
futures = params.map do |p|
pool.future(:perform_work, p)
end
futures.map(&:value)
sleep 1
end
我想包括池创建与后续pool.terminate
的循环,但它的垃圾邮件线程,并导致演员崩溃。