react-parallel/infinite-pool

♾️ 用于连接 ext-parallel 和 ReactPHP 的无限池

2.1.2 2020-11-21 12:37 UTC

README

Continuous Integration Latest Stable Version Total Downloads Code Coverage Type Coverage License

围绕 ext-parallel-infinite-pool 的 ReactPHP 绑定

安装

要通过 Composer 安装,请使用以下命令,它将自动检测最新版本并将其绑定到 ~

composer require react-parallel/infinite-pool 

用法

以下示例将启动一个具有 1 秒 TTL 清理策略的线程。这意味着线程会在等待执行 1 秒后关闭。然后在该线程中运行一个闭包,该闭包将等待一秒后返回消息。在接收到该消息后,主线程将输出该消息然后关闭池;

use React\EventLoop\Factory;
use ReactParallel\EventLoop\EventLoopBridge;
use ReactParallel\Pool\Infinite\Infinite;

$loop = Factory::create();
$infinite = new Infinite($loop, new EventLoopBridge($loop), 1);
$infinite->run(function () {
    sleep(1);

    return 'Hoi!';
})->then(function (string $message) use ($infinite) {
    echo $message, PHP_EOL;
    $infinite->close();
});
$loop->run();

度量

此包支持通过 wyrihaximus/metrics 进行度量

use React\EventLoop\Factory;
use ReactParallel\EventLoop\EventLoopBridge;
use ReactParallel\EventLoop\Metrics as EventLoopMetrics;
use ReactParallel\Pool\Infinite\Infinite;
use ReactParallel\Pool\Infinite\Metrics;
use WyriHaximus\Metrics\Configuration;
use WyriHaximus\Metrics\InMemory\Registry;

$loop = Factory::create();
$registry = new Registry(Configuration::create());
$eventLoopBridge = (new EventLoopBridge($loop))->withMetrics(EventLoopMetrics::create($registry));
$finite = (new Infinite($loop, $eventLoopBridge, 1.3))->withMetrics(Metrics::create($registry));

许可

版权所有 2020 Cees-Jan Kiewiet

特此授予任何人获得本软件及其相关文档副本(“软件”)的副本的权利,不受任何限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供副本的个人这样做,前提是满足以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论源于合同、侵权或其他方式,源于、因或与软件或软件的使用或其他交易有关。