#### 异步任务管理
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
- 欢迎使用swoolefy
- 环境说明
- 开发部署
- 安装
- 创建应用
- 启动|停止服务
- nginx代理
- 创建Controller
- 应用结构
- App应用对象
- Event请求处理
- 超全局管理
- 热更新
- inotify实现worker进程热重启
- http服务
- 应用层配置
- 协议层配置
- 路由规则
- 控制器
- 数据模型
- websocket服务
- 应用层配置
- 协议层配置
- 数据封装格式
- 控制器
- 数据模型
- 二进制数据处理
- rpc服务
- 应用层配置
- 协议程配置
- 数据包协议格式
- 服务控制器
- 服务数据模型
- udp服务
- 应用层配置
- 协议层配置
- 数据包封装格式
- 控制器
- 存在问题
- 常用组件
- log
- view
- session
- cache(redis)
- db(mysql)
- mongodb
- 其他服务管理
- 自定义进程管理
- 异步任务管理
- 内存表管理
- 定时器管理
- 异常捕捉处理
- 进程池管理
- systerm采集进程服务