123456789101112131415161718192021222324252627282930313233343536 |
- <?php
- namespace App\Task;
- use Hyperf\Contract\StdoutLoggerInterface;
- use Hyperf\Crontab\Annotation\Crontab;
- use Hyperf\Di\Annotation\Inject;
- use Hyperf\Coroutine\Exception\ParallelExecutionException;
- use Hyperf\Coroutine\Coroutine;
- use Hyperf\Coroutine\Parallel;
- #[Crontab(name: "Fooss", rule: "*/1 * * * *", callback: "", memo: "这是一个示例的定时任务")]
- class CollectorTask
- {
- #[Crontab(rule: "*/1 * * * *", memo: "测试数据001")]
- public function foo()
- {
- var_dump('试试');
- $parallel = new Parallel(5);
- for ($i = 0; $i < 20; $i++) {
- $parallel->add(function () {
- sleep(1);
- return Coroutine::id();
- });
- }
- try{
- $results = $parallel->wait();
- var_dump($results);
- } catch(ParallelExecutionException $e){
- // $e->getResults() 获取协程中的返回值。
- // $e->getThrowables() 获取协程中出现的异常。
- }
- }
- }
|