Swoft 踩坑筆記十一 - Task 非同步任務
阿新 • • 發佈:2018-12-25
一個類就是一個任務組,類裡面的每個方法,就是一個任務。
示例
建立 swoft/app/Tasks/DemoTask.php
<?php namespace App\Tasks; use Swoft\Task\Bean\Annotation\Task; /** * Demo task * * @Task("demo") */ class DemoTask { public function test(int $num) { sleep($num); echo '終端:每' . $num . '秒輸出一次,哦耶~' . PHP_EOL; } }
@Task("demo")
:定義任務名稱,名稱必須唯一。
非同步任務
在控制器中投遞任務
$result = Task::deliver('demo', 'test', ['3'], Task::TYPE_ASYNC);
引數一:@Task 定義的
引數二:方法名
引數三:以陣列的格式傳值
引數四:指定是協程還是非同步,Task::TYPE_CO
是協程,Task::TYPE_ASYNC
是非同步
執行上面的程式碼十次,也就是在瀏覽器連續按F5十次。
下一篇:定時任務