基于 webman + TP-ORM 的动态设置定时任务管理
composer require yzh52521/webman-task
$param = [
'method' => 'crontabIndex',//计划任务列表
'args' => ['limit' => 10, 'page' => 1]//参数
];
$result= yzh52521\Task\Client::instance()->request($param);
return json($result);
method: crontabIndex
args
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
page | 是 | 1 | 页码 |
limit | 是 | 15 | 每页条数 |
{
"code": 200,
"data": {
"list": [
{
"id": 1,
"title": "输出 webman 版本",
"frequency": "*/30 * * * * *",
"shell": "php webman version",
"running_times": 3,
"last_running_time": 1625636646,
"remark": "每30秒执行",
"sort": 0,
"status": 1,
"create_time": 1625636609,
"update_time": 1625636609
},
],
"count": 1
},
"msg": "ok!"
}
method: crontabLog
args
参数名称 | 是否必须 | 示例 | 备注 |
---|---|---|---|
page | 是 | 1 | 页码 |
limit | 是 | 15 | 每页条数 |
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
参数名称 | 参数类型 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
title | text | 是 | 输出 webman 版本 | 任务标题 |
frequency | text | 是 | */30 * * * * * | 任务频率 |
shell | text | 是 | php webman version | 任务脚本 |
remark | text | 是 | 每3秒执行 | 备注 |
sort | text | 是 | 0 | 排序 |
status | text | 是 | 1 | 状态[0禁用; 1启用] |
{
"code": 200,
"data":{
"code":true
},
"msg": "ok!"
}
method: crontabReload
args
参数名称 | 参数类型 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
id | text | 是 | 1,2 | 计划任务ID 多个逗号隔开 |
{
"code": 200,
"data":{
"code":true
},
"msg": "ok!"
}
method: crontabUpdate
args
参数名称 | 参数类型 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
id | text | 是 | 1 | |
title | text | 否 | 输出 webman 版本 | 任务标题 |
frequency | text | 否 | */3 * * * * * | 任务频率 |
shell | text | 否 | php webman version | 任务脚本 |
remark | text | 否 | 每3秒执行 | 备注 |
sort | text | 否 | 0 | 排序 |
status | text | 否 | 1 | 状态[0禁用; 1启用] |
{
"code": 200,
"data":{
"code":true
},
"msg": "ok!"
}
method: crontabDelete
args
参数名称 | 参数类型 | 是否必须 | 示例 | 备注 |
---|---|---|---|---|
id | text | 是 | 1,2 | 计划任务ID 多个逗号隔开 |
{
"code": 200,
"data":{
"code":true
},
"msg": "ok!"
}
能对php 7.3版本支持吗?
已支持
感谢
要改成这样,属性添加限定类型php 7.3 不支持
感谢反馈 已经提交
任务类型为command时怎么传递参数呢?
我还没想好怎么处理 你有好处理方法么?
https://www.kancloud.cn/manual/thinkphp6_0/1037651
tp6支持在控制器中调用命令,Console::call('hello', [$name]);支持参数传递
现在 是 webman 没有方法来传递参数
哥您好 数据表怎么创建呢 手动创建 还是 composer自动创建呢 ?如果是composer创建的那我就有问题了 因为我没有自动创建成功
安装扩展后 启动webman 就创建好了
启动总是报错啊大佬```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:
开启 依赖注入
安装了这些依赖还是不行
开启 依赖注入
获取任务列表报错
改成 127.0.0.1:2345 可以了
获取任务列表报错
task 目录下 listen 0.0.0.0:2345 缓存 127.0.0.1:2345
是task目录下配置文件的 listen吗
config/plugin/yzh52521/task/app.php
修改了还是一样
vendor\yzh52521\webman-task\src\Server.php 刚刚Server.php打印数据,是这个方法出了问题,不知道是我的依赖注入版本问题还是php问题。
打印结果
string(14) "GET / HTTP/1.1"
string(9) "onMessage"
依赖注入安装,开启了没有
都弄了
就是版本高一些,不知道是不是这个原因
能实现定时任务编辑,删除这些操作立即生效吗 现在需要下一分钟才生效
定时任务本身就是下一分钟生效的机制
是否单次执行 怎么不生效呢,
生效是下一分钟 你这是5秒一次