pool
pool
模块
pool
模块摘要
负荷分配设施
描述
这个模块可以用来运行一组Erlang节点作为计算处理器池。它被组织为一个主节点和一组从节点,并包含以下功能:
- 从节点定期向主节点发送关于其当前负载的报告。
- 查询可以发送到主节点,以确定哪个节点的负载最少。
BIFstatistics(run_queue)
用于估计未来的负载。它返回Erlang运行时系统中准备运行的进程的队列长度。
从节点开始时,slave(3)
模块。这会影响终端I/O、文件I/O和代码加载。
如果主节点发生故障,整个池将退出。
输出
attach(Node) -> already_attached | attached
类型
确保池主Node
节点正在运行并包含在池主节点的池中。
get_node() -> node()
返回具有预期最低未来负载的节点。
get_nodes() -> node()
返回池的当前成员节点的列表。
pspawn(Mod, Fun, Args) -> pid()
类型
在池节点上生成一个进程,该进程的未来负载最低。
pspawn_link(Mod, Fun, Args) -> pid()
类型
生成并链接到池节点上的进程,该进程的未来负载最低。
start(Name) -> Nodes
start(Name, Args) -> Nodes
类型
开始一个新的池。 读取文件.hosts.erlang以查找可以启动池节点的主机名; 请参阅文件部分。 如果找不到文件,启动过程将失败。
从节点以slave启动:start / 2,3,传递Name和Args。 名称用作节点名称的第一部分,Args用于指定命令行参数。
必须设置访问权限,以便池中的所有节点都有权访问对方。
该函数是同步的,并且所有节点和所有系统服务器在返回值时都在运行。
stop() -> stopped
停止池并杀死所有的从节点。
档案
.hosts.erlang用于选择可以启动节点的主机。 有关此文件格式和位置的信息,请参阅net_adm:host_file / 0。
$HOME/.erlang.slave.out.HOST
用于所有可能来自标准I / O上从节点的额外I / O。如果启动过程不起作用,该文件可以指出原因。