leocavalcante/swoole-mutex

PHP Swoole 并发运行时互斥抽象。

dev-master 2020-04-11 20:05 UTC

This package is auto-updated.

Last update: 2024-09-12 23:56:37 UTC


README

Actions Status

🚦 互斥 抽象,用于 PHP 的 Swoole 并发运行时。

能力越大,责任越大 —— 艾伦·本(我想是)

Swoole 的强大功能实现了跨多个进程和核心的并发,但它们之间共享状态/内存并不是一件简单的事情。 Swoole.Table 出现以提供帮助,但也许我们可以为这项任务提供一个更好的 API。

此包是 外观 模式,用于 Swoole.Table,提供互斥模式常见的 API。

我们向 爱德加·Dijkstra (以及 Swoole 团队 因其出色的作品) 表示敬意。

安装

composer require leocavalcante/swoole-mutex

示例

跨 >1 个工作进程计数 HTTP 请求。

use Mutex\Atomic\Integer;
use Swoole\Http\{Request, Response, Server};

$counter = new Integer();
$server = new Server('127.0.0.1', 8000);

$server->on('request', function (Request $req, Response $res) use ($counter): void {
    if ($req->server['request_uri'] !== '/favicon.ico') {
        $counter->inc();
    }

    $res->end('You are number: ' . $counter->value());
});

$server->set(['worker_num' => 4]);
$server->start();

© 2k2O