wyrihaximus/react-child-process-closure

在 ReactPHP 子进程中运行闭包

1.2.0 2021-09-15 06:56 UTC

README

Linux Build Status Latest Stable Version Total Downloads Code Coverage License PHP 7 ready

在子进程消息传递器或池中运行闭包

安装

要使用 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

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

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

本软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论该责任是基于合同、侵权或其他方式,是否与软件或其使用或其他方式有关。