react-parallel / event-loop
🌀🌉🌀 事件循环桥接到 ext-parallel 事件
1.2.0
2020-12-19 16:47 UTC
Requires
- php: ^7.4
- ext-parallel: *
- react/event-loop: ^1.1
- react/promise: ^2.7
- reactivex/rxphp: ^2.0
- wyrihaximus/constants: ^1.6.0
- wyrihaximus/metrics: ^1.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-20 23:03:39 UTC
README
安装
要通过 Composer 安装,请使用以下命令,它将自动检测最新版本并将其绑定到 ~
。
composer require react-parallel/event-loop
使用方法
设置
就像 ReactPHP 事件循环一样,你应该只有一个桥接器。你可以有多个,并且与 ReactPHP 事件循环不同,这将工作,但是当超过几个时,它将增加额外的开销。拥有几个用于不同主要上下文的手牌。分享这个桥接器,以便其他包可以使用它,并且只有一个实例检查事件。
use React\EventLoop\Factory; use ReactParallel\EventLoop\EventLoopBridge; $loop = Factory::create(); $eventLoopBridge = new EventLoopBridge($loop); $loop->run();
通道
通道通常有一串消息通过它们传递,因此桥接器将它们转换为可观察对象。
use parallel\Channel; use React\EventLoop\Factory; use ReactParallel\EventLoop\EventLoopBridge; $loop = Factory::create(); $eventLoopBridge = new EventLoopBridge($loop); $channel = new Channel(Channel::Infinite); $eventLoopBridge->observe($channel)->subscribe(function (string $message) { echo $message, PHP_EOL; }); $loop->futureTick(function () use ($channel): void { $channel->send('Hello World!'); $channel->close(); }); $loop->run();
未来
承诺是推送,而未来是拉取,因此事件循环将在结果可用时轮询并解析承诺。
use parallel\Channel; use React\EventLoop\Factory; use ReactParallel\EventLoop\EventLoopBridge; use function parallel\run; $loop = Factory::create(); $eventLoopBridge = new EventLoopBridge($loop); $future = run(function (): string { return 'Hello World!'; }); $channel = new Channel(Channel::Infinite); $eventLoopBridge->await($future)->then(function (string $message) { echo $message, PHP_EOL; }); $loop->run();
度量
此包通过 wyrihaximus/metrics
支持度量。
use React\EventLoop\Factory; use ReactParallel\EventLoop\EventLoopBridge; use ReactParallel\EventLoop\Metrics; use WyriHaximus\Metrics\Configuration; use WyriHaximus\Metrics\InMemory\Registry; $loop = Factory::create(); $eventLoopBridge = (new EventLoopBridge($loop))->withMetrics(Metrics::create(new Registry(Configuration::create())));
贡献
有关详细信息,请参阅 CONTRIBUTING。
许可证
版权 2024 Cees-Jan Kiewiet
特此免费许可,任何人获得此软件及其相关文档文件(“软件”)的副本(“软件”),可不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许向提供软件的个人提供软件以进行此类操作,但受以下条件约束
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定用途和侵权不保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论这些责任是合同责任、侵权责任或其他责任,无论这些责任是由于、来自或与软件或软件的使用或其他方式相关。