travail / parallel-prefork
一个简单的prefork服务器框架
v0.2.1
2017-08-30 08:23 UTC
Requires
- php: >=5.3
- ext-pcntl: *
- ext-posix: *
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is auto-updated.
Last update: 2024-09-14 19:58:25 UTC
README
名称
Parallel\Prefork - 一个简单的prefork服务器框架
概要
<?php use \Parallel\Prefork; require_once '/path/to/vendor/autoload.php'; $pp = new Prefork([ 'max_workers' => 5, 'trap_signals' => [ SIGHUP => SIGTERM, SIGTERM => SIGTERM, ], ]); while ($pp->signalReceived() !== SIGTERM) { if ($pp->start()) { continue; } // ... do some work within the child process ... $pp->finish(); } $pp->waitAllChildren();
安装
要将此软件包安装到您的项目中,请通过composer添加以下片段到您的 composer.json
文件中。然后运行 composer install
。
"require": {
"travail/parallel-prefork": "dev-master"
}
如果您想从github安装,请添加以下内容
"repositories": [
{
"type": "vcs",
"url": "git@github.com:travail/php-Parallel-Prefork.git"
}
]
描述
Parallel\Prefork
支持优雅的关闭和运行时重新配置。
依赖
- posix
- pcntl
方法
__construct
Parallel\Prefork __construct([ 'max_workers' => int $max_workers, 'err_respawn_interval' => int $err_respawn_interval, 'trap_signals' => [int $signal_trapped_in_parent_process => int $signal_sent_to_child_processes], ])
实例化。接受一个数组作为参数。支持的参数如下。
max_workers
工作进程数(默认:3)
trap_signals
要捕获的信号数组。管理进程将捕获数组键中列出的信号,并将指定的信号(如果有)发送到所有工作进程。
err_respawn_interval
在工作进程异常退出后阻止启动子进程的秒数(默认:1)
start
bool start()
主例程。在子进程中返回 undef。在管理进程中接收到在 trapSignals
数组中指定的信号后返回 true
。
finish
void finish(int $exit_code)
子进程应调用此函数进行终止。可选参数为退出代码。仅适用于子进程。
signalAllChildren
void signalAllChildren(int $signal)
向所有工作进程发送信号。仅适用于管理进程。
waitAllChildren
void waitAllChildren()
阻塞,直到所有工作进程退出。仅适用于管理进程。
signalReceived
int signalReceived()
返回捕获的管理进程信号。
感谢
作者
travail
许可证
此库是免费软件。您可以在与PHP相同的条款下重新分配和/或修改它。