在线文档教程
Erlang 20

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。如果启动过程不起作用,该文件可以指出原因。