午夜免费_欧美一级免费看_欧美日韩一区二区视频在线观看_午夜视频在线_日本特黄a级高清免费大片_成年人黄色小视频

CoroutineRunner

协程执行器 CoroutineRunner类似于Csp组件,但更加灵活,可以投递协程任务并限制最大同时执行数、最长执行时间、成功或失败回调

简单示例

use co;
use EasySwoole\Component\CoroutineRunner\Runner;
use EasySwoole\Component\CoroutineRunner\Task;

$runner = new Runner(10);
$runner->setOnException(function(\Throwable  $e, $task){
    echo $e->getMessage();
    echo PHP_EOL;
});

$max = 30;
$allTask = [];
while($max>0){
    $task = new Task(function() use ($max) {
        echo $max .PHP_EOL;
        co::sleep(1);
        // 将设这是一个curl爬取任务 return 爬取结果 可以在外部获取
        return 'ok';
    });
    $runner->addTask($task);
    $allTask[] = $task;
    $max--;
}

$runner->start(1);// 最长执行1秒  总共投递了30个 最大并发10个 需要3秒执行完,所以会有一部分将被丢弃  看下方参数说明列表

foreach($allTask as $key => $task){
    var_dump($task->getResult());
}

参数说明

Runner构造函数

可接收两个参数 __construct($concurrency = 64,$taskChannelSize = 1024)

  • concurrency 最大同时执行的协程数量
  • taskChannelSize 可投递的task队列长度

Runner->setOnException

设置异常回调 有两个参数 (\Throwable $e, Task $task)

Runner->start

开启已经投递的task协程的执行,有一个参数

  • float $waitTime = 30 最长执行时间,如果超过这个时间,剩余的task协程将被丢弃,不再执行。

Task构造函数

需要一个callable参数,用于调用执行,可以在闭包内return数据,外部使用 $task->getResult()获取

  • return 不等于 false的数据将会触发onSuccess
  • return false 将会触发 onFail

Task->setOnSuccess

需要一个callable参数

【非必选】 task执行完成回调

Task->setOnFail

需要一个callable参数

【非必选】 task执行失败回调

Task->getResult

获取call函数执行后return的数据

主站蜘蛛池模板: 国产成人免费视频 | 国产美女在线精品 | 在线观看免费亚洲 | 91视频.com| 午夜免费成人 | 91精品久久久久久久久中文字幕 | 国产精品永久久久久 | 欧美日韩精品一区二区三区 | 国产精品日韩一区 | 91精品国产色综合久久不卡蜜臀 | 91正在播放| 91亚洲专区 | 亚洲精美视频 | 亚洲天堂成人在线视频 | 99久久精品国产91久久久 | 91视频免费观看 | 91n在线观看| 91麻豆精品国产91久久久资源速度 | 一区二区在线免费看 | 国产成+人+综合+亚洲 欧美 | 99不卡| 九九热免费视频 | 亚洲天堂成人在线视频 | 一区二区三区四区五区中文字幕 | 欧美日韩精品一区二区三区 | 99精品久久久 | 91文字幕巨乱亚洲香蕉 | 国产成人免费在线视频 | 国产一级片精品 | 久久久久久久久久久亚洲 | 99热国 | 91成人免费视频 | 婷婷综合久久日韩一区 | 久久久久国产成人免费精品免费 | 一区二区三区四区在线视频 | 亚洲天堂成人在线视频 | 国产成人精品一区二区免费看京 | 九九九热精品免费视频观看网站 | 一级片亚洲 | 亚洲精品天堂 | 久久久久久久久久久久久国产 |