react-parallel / infinite-pool
♾️ 用于连接 ext-parallel 和 ReactPHP 的无限池
2.1.2
2020-11-21 12:37 UTC
Requires
- php: ^7.4
- ext-parallel: *
- react-parallel/contracts: ^1.0
- react-parallel/event-loop: ^1.0
- react-parallel/runtime: ^2.0
- react/event-loop: ^1.1
- react/promise: ^2.7
- wyrihaximus/constants: ^1.5
- wyrihaximus/metrics: ^1.0
- wyrihaximus/pool-info: ^1.0
Requires (Dev)
- bruli/php-value-objects: ^2.0
- moneyphp/money: ^3.2 || ^3.2.1
- react-parallel/pool-tests: ^3.0
- wyrihaximus/async-test-utilities: ^3.2
- wyrihaximus/iterator-or-array-to-array: ^1.1
This package is auto-updated.
Last update: 2024-09-23 11:05:39 UTC
README
围绕 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
特此授予任何人获得本软件及其相关文档副本(“软件”)的副本的权利,不受任何限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供副本的个人这样做,前提是满足以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论源于合同、侵权或其他方式,源于、因或与软件或软件的使用或其他交易有关。