【问题标题】:Celluloid SupervisionGroup does not work赛璐珞监督组不起作用
【发布时间】:2016-01-31 12:38:19
【问题描述】:

为了理解赛璐珞,我编写了以下脚本。

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

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

所以我尝试使用主管,但它提高了我 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)

如何使用新系统让工作成为未来、主管和团队?

【问题讨论】:

    标签: ruby celluloid


    【解决方案1】:

    Celluloid::SupervisionGroup 更名为 Celluloid::Supervision::Container

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

    【讨论】:

      猜你喜欢
      • 2012-12-02
      • 2015-12-06
      • 2012-08-30
      • 1970-01-01
      • 2016-08-07
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      相关资源
      最近更新 更多