一个类就是一个任务组,类里面的每个方法,就是一个任务。
示例
创建 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十次。
下一篇:定时任务