CollectorTask.php 1008 B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace App\Task;
  3. use Hyperf\Contract\StdoutLoggerInterface;
  4. use Hyperf\Crontab\Annotation\Crontab;
  5. use Hyperf\Di\Annotation\Inject;
  6. use Hyperf\Coroutine\Exception\ParallelExecutionException;
  7. use Hyperf\Coroutine\Coroutine;
  8. use Hyperf\Coroutine\Parallel;
  9. #[Crontab(name: "Fooss", rule: "*/1 * * * *", callback: "", memo: "这是一个示例的定时任务")]
  10. class CollectorTask
  11. {
  12. #[Crontab(rule: "*/1 * * * *", memo: "测试数据001")]
  13. public function foo()
  14. {
  15. var_dump('试试');
  16. $parallel = new Parallel(5);
  17. for ($i = 0; $i < 20; $i++) {
  18. $parallel->add(function () {
  19. sleep(1);
  20. return Coroutine::id();
  21. });
  22. }
  23. try{
  24. $results = $parallel->wait();
  25. var_dump($results);
  26. } catch(ParallelExecutionException $e){
  27. // $e->getResults() 获取协程中的返回值。
  28. // $e->getThrowables() 获取协程中出现的异常。
  29. }
  30. }
  31. }