qbhy/swoole-parallel

此包的最新版本(v1.1)没有可用的许可信息。

v1.1 2020-06-15 06:39 UTC

This package is auto-updated.

Last update: 2024-09-15 16:19:57 UTC


README

可以并行执行协程的库,源自于hyperf/utils。由于hyperf/utils的parallel只能在hyperf框架下使用,因此有了这个项目。

安装 - install

$ composer require qbhy/swoole-parallel

使用 - usage

require __DIR__ . 'vendor/autoload.php';

\Swoole\Coroutine::create(function () {
    $time = time();
    $parallel = new \Qbhy\SwooleParallel\Parallel(20);

//    $parallel->setCaller(function ($callback) {
//        return app()->call($callback); // laravel 内可以这样实现协程内依赖注入
//    });

    for ($i = 0; $i < 5; ++$i) {
        $parallel->add(function () use ($i) {
            \Swoole\Coroutine::sleep(1);
            return $i;
        });
    }

    $results = $parallel->wait();
    $diff = time() - $time;
    var_dump($results);
    print_r("运行了:{$diff}");
});

运行结果

array(5) {
  [0]=>
  int(0)
  [4]=>
  int(4)
  [3]=>
  int(3)
  [2]=>
  int(2)
  [1]=>
  int(1)
}
运行了:1秒

请务必在协程环境下使用

qbhy0715@qq.com