后台任务
项目配置文件中mainServer.configs.task_worker_num
一定要配置为大于0,否则无法使用后台任务。
类名无所谓,实现ITaskHandler
接口和两个方法即可。
TaskManager::post(new TaskInfo(
new TestTask,
// 执行任务的参数,构造方法可以接收一个数组
new TaskParam([
'time' => time(),
])
));
投递任务后阻塞等待执行完毕或超时,返回值为任务执行结果或false
// 上面定义的类的实例
new TestTask,
// 执行任务的参数,构造方法可以接收一个数组
new TaskParam([
'time' => time(),
])
)],
0.5);
传入数组和超时时间,投递后挂起协程,当全部执行完毕或超时后返回结果。返回值为数组,对应每个任务的执行结果。
投递异步任务
TaskManager::nPost(
'testTask'
// 任务参数
, [
'time' => time(),
]
);
调用后立即返回,不影响下面代码的执行
同步投递任务
投递任务后阻塞等待执行完毕或超时,返回值为任务执行结果或false
协程批量投递任务
TaskManager::postWait([
['testTask', ['time'=>time()]],
['testTask', ['time'=>time()]],
],
// 最长等待时间,单位:秒