wyrihaximus / react-child-process-closure
在 ReactPHP 子进程中运行闭包
1.2.0
2021-09-15 06:56 UTC
Requires
- php: ^8 || ^7.4
- opis/closure: ^3.5
- react/event-loop: ^1.2
- react/promise: ^2.8
- wyrihaximus/react-child-process-messenger: ^4.0
Requires (Dev)
- wyrihaximus/async-test-utilities: ^4.0.4
This package is auto-updated.
Last update: 2024-09-05 01:05:43 UTC
README
在子进程消息传递器或池中运行闭包
安装
要使用 Composer 安装,请使用以下命令,它将自动检测最新版本并将其与 ~
绑定。
composer require wyrihaximus/react-child-process-closure
用法
在子进程中运行闭包并获取结果。(注意,结果必须是可序列化为 JSON 的数组。)
use React\EventLoop\Factory as EventLoopFactory; use WyriHaximus\React\ChildProcess\Closure\ClosureChild; use WyriHaximus\React\ChildProcess\Closure\MessageFactory; use WyriHaximus\React\ChildProcess\Messenger\Factory as MessengerFactory; use WyriHaximus\React\ChildProcess\Messenger\Messages\Payload; use WyriHaximus\React\ChildProcess\Messenger\Messenger; $loop = EventLoopFactory::create(); MessengerFactory::parentFromClass(ClosureChild::class, $loop)->then(function (Messenger $messenger) use ($loop) { $messenger->rpc(MessageFactory::rpc(function () { return resolve(['time' => time()]); })->done(function (Payload $payload) { echo 'Time in the child process: ', $payload['time'], PHP_EOL; }); }); $loop->run();
上面的用法示例也适用于 wyrihaximus/react-child-process-pool
,只需确保使用如示例中所示创建 RPC 消息的 WyriHaximus\React\ChildProcess\Closure\MessageFactory
。
示例
更多示例请见 示例目录
贡献
有关详细信息,请参阅 CONTRIBUTING
许可
版权所有 2017 Cees-Jan Kiewiet
在此特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用权,无需限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向提供软件的人提供这样做,前提是以下条件
上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。
本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论该责任是基于合同、侵权或其他方式,是否与软件或其使用或其他方式有关。