webman + TP-ORM 动态设置crontab定时任务组件

yzh52521

简介

基于 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!"
}
883 3 3
3个评论

WatcherLuo

能对php 7.3版本支持吗?

  • yzh52521 2022-06-16

    已支持

  • WatcherLuo 2022-06-16

    感谢

  • WatcherLuo 2022-06-16
    private $worker;
    
    /**
     * 调试模式
     * @var bool
     */
    private $debug = false;
    
    /**
     * 任务进程池
     * @var Crontab[] array
     */
    private $crontabPool = [];
    
    /**
     * 定时任务表
     * @var string
     */
    private $crontabTable;
    
    /**
     * 定时任务日志表
     * @var string
     */
    private $crontabLogTable;

    要改成这样,属性添加限定类型php 7.3 不支持

  • yzh52521 2022-06-17

    感谢反馈 已经提交

WatcherLuo

任务类型为command时怎么传递参数呢?

weywey

哥您好 数据表怎么创建呢 手动创建 还是 composer自动创建呢 ?如果是composer创建的那我就有问题了 因为我没有自动创建成功

  • yzh52521 2022-10-21

    安装扩展后 启动webman 就创建好了

yzh52521

2036
积分
0
获赞数
0
粉丝数
2021-03-12 加入
🔝