小编fk2*_*low的帖子

Ruby中'self.method_name'和'class << self'之间的区别

我试图将类的实例化限制为只有一个(不使用单例),但我不能.我尝试使用类变量(@@),但没有运气.我用Google搜索并发现了这个:

class A 
  @count = 0 

  class << self 
    attr_accessor :count 
  end

  def initialize val 
    @a = val 
    self.class.count += 1 
  end 
end 

a=A.new 42 
b=A.new 43
Run Code Online (Sandbox Code Playgroud)

我搜索了"类"自我 "的解释,希望找到一个更好的(或者只是一个更简单和干净),但是反过来,没有运气.最后,经过一些测试后我得出结论,'class << self '只是一个块包装器,你可以在其中定义方法.那么,这是正确的吗?

问候!

ruby ruby-on-rails eigenclass

5
推荐指数
2
解决办法
2441
查看次数

重启频率为:simple_one_for_one worker

在动态创建字形时,如何设置重启频率?在当前设置中,工作人员不断重新启动无穷大.

我也尝试过设置:max_restarts,在工作规范(worker(Kombiner.Foo,[],max_restarts:3,max_seconds:5)中)并且它似乎根本没有做任何事情(它将继续为无限重启).

def start_child(input) do
  Supervisor.start_child(@name, [input])
end


def init(:ok) do
  children = [
    worker(Kombiner.Foo, [], restart: :transient)
  ]
  supervise(children, strategy: :simple_one_for_one)
end
Run Code Online (Sandbox Code Playgroud)

在Kombiner.Foo工作者里面:

def handle_info({any, :timeout}, _state) do
  {:stop, :timeout, nil}
end
Run Code Online (Sandbox Code Playgroud)

elixir erlang-otp

3
推荐指数
1
解决办法
808
查看次数

标签 统计

eigenclass ×1

elixir ×1

erlang-otp ×1

ruby ×1

ruby-on-rails ×1