#### 異步任務管理
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采集進程服務