基于 webman + TP-ORM 的動態(tài)設置定時任務管理
composer require yzh52521/webman-task
$param = [
'method' => 'crontabIndex',//計劃任務列表
'args' => ['limit' => 10, 'page' => 1]//參數(shù)
];
$result= yzh52521\Task\Client::instance()->request($param);
return json($result);
method: crontabIndex
args
參數(shù)名稱 | 是否必須 | 示例 | 備注 |
---|---|---|---|
page | 是 | 1 | 頁碼 |
limit | 是 | 15 | 每頁條數(shù) |
{
"code": 200,
"data": {
"list": [
{
"id": 1,
"title": "輸出 webman 版本",
"frequency": "*/30 * * * * *",
"shell": "php webman version",
"running_times": 3,
"last_running_time": 1625636646,
"remark": "每30秒執(zhí)行",
"sort": 0,
"status": 1,
"create_time": 1625636609,
"update_time": 1625636609
},
],
"count": 1
},
"msg": "ok!"
}
method: crontabLog
args
參數(shù)名稱 | 是否必須 | 示例 | 備注 |
---|---|---|---|
page | 是 | 1 | 頁碼 |
limit | 是 | 15 | 每頁條數(shù) |
sid | 否 | 1 | 計劃任務ID |
{
"code": 200,
"data": {
"list": [
{
"id": 12,
"sid": 1,
"command": "php webman version",
"output": "1.3.0",
"return_code": 0,
"running_time": "0.115895",
"create_time": 1625636673,
"update_time": 1625636673
},
}
method: crontabCreate
args
參數(shù)名稱 | 參數(shù)類型 | 是否必須 | 示例 | 備注 |
---|---|---|---|---|
title | text | 是 | 輸出 webman 版本 | 任務標題 |
frequency | text | 是 | */30 * * * * * | 任務頻率 |
shell | text | 是 | php webman version | 任務腳本 |
remark | text | 是 | 每3秒執(zhí)行 | 備注 |
sort | text | 是 | 0 | 排序 |
status | text | 是 | 1 | 狀態(tài)[0禁用; 1啟用] |
{
"code": 200,
"data":{
"code":true
},
"msg": "ok!"
}
method: crontabReload
args
參數(shù)名稱 | 參數(shù)類型 | 是否必須 | 示例 | 備注 |
---|---|---|---|---|
id | text | 是 | 1,2 | 計劃任務ID 多個逗號隔開 |
{
"code": 200,
"data":{
"code":true
},
"msg": "ok!"
}
method: crontabUpdate
args
參數(shù)名稱 | 參數(shù)類型 | 是否必須 | 示例 | 備注 |
---|---|---|---|---|
id | text | 是 | 1 | |
title | text | 否 | 輸出 webman 版本 | 任務標題 |
frequency | text | 否 | */3 * * * * * | 任務頻率 |
shell | text | 否 | php webman version | 任務腳本 |
remark | text | 否 | 每3秒執(zhí)行 | 備注 |
sort | text | 否 | 0 | 排序 |
status | text | 否 | 1 | 狀態(tài)[0禁用; 1啟用] |
{
"code": 200,
"data":{
"code":true
},
"msg": "ok!"
}
method: crontabDelete
args
參數(shù)名稱 | 參數(shù)類型 | 是否必須 | 示例 | 備注 |
---|---|---|---|---|
id | text | 是 | 1,2 | 計劃任務ID 多個逗號隔開 |
{
"code": 200,
"data":{
"code":true
},
"msg": "ok!"
}
private $worker;
/**
* 調(diào)試模式
* @var bool
*/
private $debug = false;
/**
* 任務進程池
* @var Crontab[] array
*/
private $crontabPool = [];
/**
* 定時任務表
* @var string
*/
private $crontabTable;
/**
* 定時任務日志表
* @var string
*/
private $crontabLogTable;
要改成這樣,屬性添加限定類型php 7.3 不支持
任務類型為command時怎么傳遞參數(shù)呢?
https://www.kancloud.cn/manual/thinkphp6_0/1037651
tp6支持在控制器中調(diào)用命令,Console::call('hello', [$name]);支持參數(shù)傳遞
啟動總是報錯啊大佬```php
ArgumentCountError: Too few arguments to function yzh52521\Task\Mutex\RedisTaskMutex::__construct(), 0 passed in /Users/destiny/admin/webman/vendor/workerman/webman-framework/src/Container.php on line 38 and exactly 1 expected in /Users/destiny/admin/webman/vendor/yzh52521/webman-task/src/Mutex/RedisTaskMutex.php:17
Stack trace:
能對php 7.3版本支持嗎?