Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 《赛璐珞泳池》第一次叫来了死去的演员_Ruby_Celluloid - Fatal编程技术网

Ruby 《赛璐珞泳池》第一次叫来了死去的演员

Ruby 《赛璐珞泳池》第一次叫来了死去的演员,ruby,celluloid,Ruby,Celluloid,每次我启动应用程序,第一次调用它时,它都会返回死去的演员。之后,它会像预期的那样返回 require 'celluloid' class BatchProcess include Celluloid POOL = BatchProcess.pool(size: 6) attr_accessor :base_url, :futures, :objects, :pool, :array def initialize(*args) options = args.extra

每次我启动应用程序,第一次调用它时,它都会返回死去的演员。之后,它会像预期的那样返回

require 'celluloid'

class BatchProcess
  include Celluloid
  POOL = BatchProcess.pool(size: 6)

  attr_accessor :base_url, :futures, :objects, :pool, :array

  def initialize(*args)
    options = args.extract_options!
    @base_url = options[:base_url] || "http://some_site.com"
    @futures = []
    @objects = {}
  end

  def fetch(array)
    @pool = POOL
    @array = array
    start
  end

  def start
    @grouped_sites = @array.group_by{|i| i[:main_site]}
    @grouped_sites.each do |main_site, queries|
      batched_url(main_site, queries)
    end
    futures.each {|f| @objects.merge!(f.value) if f.value}
  end

  def batched_urls(main_site, queries)
    queries.each do |query|
      futures << pool.future(:get_url, main_site, query)
    end
  end

  def get_url(main_site, query)
    # get http url and parse information process into json data
  end 
end    
需要“赛璐珞”
类批处理过程
包括赛璐珞
池=批处理池(大小:6)
属性访问器:基本url、:未来、:对象、:池、:数组
def初始化(*args)
选项=args.extract\u选项!
@基本url=选项[:基本url]||”http://some_site.com"
@期货=[]
@对象={}
结束
def fetch(阵列)
@池=池
@数组=数组
开始
结束
def启动
@grouped_sites=@array.group_by{i | i[:main_site]}
@分组的_站点。每个do|主_站点,查询|
批处理url(主站点、查询)
结束
futures.each{f |@objects.merge!(f.value)if f.value}
结束
def批处理URL(主站点、查询)
查询。每个do |查询|

期货这是因为在定义
initialize
之前,将池实例化为
class
常量。在设置
常量时,
初始化
还不存在,因此没有初始化任何实例变量

第二次尝试时,将定义
初始化