🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 异步任务管理 1、异步管理类`Swoolefy\Core\Task\TaskManager` `TaskManager::asyncTask()`可以在http,websocket,rpc,udp服务中使用。 ~~~ /** * asyncTask 异步任务投递 * @param mixed $callable * @param mixed $data * @return mixed */ public static function asyncTask($callable, $data = []) ~~~ ~~~ // 测试投递注册异步任务 public function asyncTask() { dump('测试异步任务'); // 注册任务并执行 TaskManager::asyncTask(['App/Task/AsyncTask', 'asyncTaskTest'], ['swoole']); return ; } ~~~ * http服务 `['App/Task/AsyncTask', 'asyncTaskTest']`是异步任务处理类,这里需要注意的是,如果是http服务,那么`App/Task/AsyncTask`必须继承于`Swoolefy\Core\Task\TaskController`,例如: ~~~ <?php namespace App\Task; use Swoolefy\Core\Swfy; use Swoolefy\Core\Application; use Swoolefy\Core\Task\TaskController; class AsyncTask extends TaskController { public $name = null; // 异步任务 public function asyncTaskTest($data) { var_dump($data); } ~~~ $data就是等于投递的数据,例如上面的投递任务,则$data=[swoole] * websocket,rpc,udp服务 如果是websocket,rpc,udp服务,则AsyncTask必须继承于`Swoolefy\Core\Task\TaskService`,例如: ~~~ <?php namespace Service\Task; use Swoolefy\Core\Swfy; use Swoolefy\Core\Task\TaskService; use Swoolefy\Core\Application; class AsyncTask extends TaskService { /** * asyncTaskTest 异步任务投递测试 * @param $data * @return */ public function asyncTaskTest($data) { var_dump($data); } ~~~ * 异步任务的配置 https://wiki.swoole.com/wiki/page/212.html