我试图将类的实例化限制为只有一个(不使用单例),但我不能.我尝试使用类变量(@@),但没有运气.我用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 '只是一个块包装器,你可以在其中定义类方法.那么,这是正确的吗?
问候!
在动态创建字形时,如何设置重启频率?在当前设置中,工作人员不断重新启动无穷大.
我也尝试过设置: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)