- 异步任务
异步任务
异步任务使用的 task做的,建议将耗时操作(前端不需要等待)放到task中,如给用户发邮件,数据同步等
配置
'swoole_http'=>['ip'=>'0.0.0.0','port'=>9501,'document_root'=>ROOT_PATH,'enable_static_handler'=>false,'worker_num'=>20,'task_worker_num'=>4, //默认开启几个 task 进程 这个控制进程数'task_max_request'=>0],
使用
Task::deliver(MyTaskService::class,'task',['key'=>100,'name'=>'test']);
那么会异步调用MyTaskService的task方法
class MyTaskService{public function task($key, $name){}}
如果你的项目是 sass 类型的 会有数据库和 redis 间的切换或者有其他因进程不同需要初始化 task 环境的需求
写个类集成自TaskConfig
class TaskConfigInit extends TaskConfig{public function _initialize(){}//这个方法是在 work 进程的可以获取到work 进程的配置public function getTaskInitConfig(){$site = CloudSite::fromConfig();return ['db_name'=>$site->db_name,'redis_select'=>$site->redis_select];}//这个方法是在 task 进程执行的 可以拿到 work 进程getTaskInitConfig 返回的参数进行初始化public function setTaskInit($config){}}
上一篇:定时任务 下一篇:命令行
