哪个erlang';游泳池合适吗?

哪个erlang';游泳池合适吗?,erlang,pool,Erlang,Pool,我希望这个池有一个功能(或选项),可以在空闲时间达到最大空闲超时时自动减少其工作人员的数量 我已经阅读了poolboy和worker\u pool的文档,发现只有最大工人数量选项,但没有何时减少的选项 它是否存在或如何修改它们?当没有工作时,poolboy会自动减少工人 您从池中让一名工作人员使用签出执行一些工作,然后使用签出释放该工作人员,作为替代方案,您在事务中包含工作,该事务自动签出该工作人员,并在完成后签入该工作人员 当您启动池时,poolboy会自动创建一些大小的工作人员,等待处理一些

我希望这个池有一个功能(或选项),可以在空闲时间达到最大空闲超时时自动减少其工作人员的数量

我已经阅读了
poolboy
worker\u pool
的文档,发现只有最大工人数量选项,但没有何时减少的选项

它是否存在或如何修改它们?

当没有工作时,poolboy会自动减少工人

您从池中让一名工作人员使用
签出
执行一些工作,然后使用
签出
释放该工作人员,作为替代方案,您在
事务
中包含工作,该事务自动签出该工作人员,并在完成后签入该工作人员

当您启动池时,poolboy会自动创建一些大小的工作人员,等待处理一些工作

当您调用
checkout
时,poolboy会尝试获取一个已启动的worker,如果所有worker都因为正在执行某些工作而已在签出,它会检查其max_溢出配置,并开始创建worker来处理负载,直到负载达到max_溢出

当一名工人被释放时,如果工人没有更多的工作,他们就会被杀害

所以如果你创建一个像

{pool, [
        {size, 100},
        {max_overflow, 900}
]}
它将立即启动100个进程,如果您一次签出(使用
签出
事务
)超过100个工作进程,则对于新签出,将开始创建进程,直到它们总共达到1000个进程(从第一刻开始创建100个,最大溢出900个进程),如果您继续尝试签出更多进程,它将在超时时开始给出错误(除非您使用
infinity
调用签出,在这种情况下,它将阻塞,直到工作人员可以自由完成任务为止,请注意,您也可以在不阻塞调用方的情况下调用工作人员)

现在,如果你需要更多的行为,比如让溢出工人继续工作,直到它通过10分钟的非活动状态,那么你需要自己编写代码,在这种情况下,你只需要获得poolboy的源代码(很容易准备和遵循,主代码打开,只有350行代码)并根据您的需要更新

也有这样的功能。请参阅第节