异步任务使用的 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){ } } ~~~