定时任务管理

免费
类型 应用插件
版本 1.0.5
版本更新时间 2024-05-31
大小 27.76 KB
开发商
兔白白-为爱发电
评分

详细介绍

本应用是在这位大佬分享的代码的基础上 优化和完善
让你的webman实现类似宝塔一样管理定时任务
大佬的仓库链接:https://github.com/settime/webman-crontab

功能特性

支持秒级的定时任务,任务类型有 访问外部链接,执行PHP代码,以及sheel脚本,(因为本身不会写sheel脚本,所以这部分我并没有测试,php代码是可以直接写某个静态类的调用方式)

每个定时任务都会启动一个定时器,定时器之间是同步调用,如果其中一个任务的 执行时间过长,将会导致整个进程的阻塞,其他任务均会延后调用(如果任务耗时长,任务间隔时间又过快,会将进程彻底堵塞,切记!)

本应用会自动安装2个数据表 cms_crontab,cms_crontab_log

PHP版本 >= 7.2 ,已经在win 系统测试过 7.2和8.0 运行均良好

安装使用

请先安装好webman-admin,可在后台插件中心完成本应用的安装

然后下载本插件 放入 根目录\plugin 中,
然后 首先执行下载下方的依赖

// 最后运行命令 完成插件的安装
php webman app-plugin:install tuCrontabs

本应用使用前还需要安装一下依赖

# 定时任务程序
composer require workerman/crontab
# redis相关包
composer require webman/redis-queue illuminate/redis
# 业务锁
composer require webman-tech/symfony-lock
# env组件
composer require vlucas/phpdotenv

完成以上安装后,您需要重启一下应用,然后在后台,您可以在【通用设置】-【定时任务】中看到安装好的应用了

您可以执行下方SQL语句,导入示例任务计划(这个并非必须的,可以在后台手动添加即可)

-- ----------------------------
-- Records of cms_crontab
-- ----------------------------
INSERT INTO `cms_crontab` VALUES (2, '执行php方法', 2, 5, '{\"month\":null,\"week\":null,\"day\":null,\"hour\":null,\"minute\":null,\"second\":\"5\"}', '*/5 * * * * *', 'return 123;', 1611, 1713763995, 0, 0, 0, 1);
INSERT INTO `cms_crontab` VALUES (3, '调用php类静态方法', 2, 5, '{\"month\":null,\"week\":null,\"day\":null,\"hour\":null,\"minute\":null,\"second\":\"10\"}', '*/10 * * * * *', '\\plugin\\tuCrontabs\\app\\common\\Test::demo();', 810, 1713763990, 0, 0, 0, 1);
INSERT INTO `cms_crontab` VALUES (8, '调用远程链接', 1, 4, '{\"month\":null,\"week\":null,\"day\":null,\"hour\":null,\"minute\":\"10\",\"second\":null}', '*/10 * * * *', 'http://www.baidu.com', 16, 1713763800, 0, 1713749636, 0, 1);
INSERT INTO `cms_crontab` VALUES (9, '执行sheel', 3, 1, '{\"month\":null,\"week\":null,\"day\":null,\"hour\":\"1\",\"minute\":\"1\",\"second\":null}', '1 1 * * *', 'date +%s%N | cut -b1-13', 1, 1713754599, 0, 1713752627, 0, 1);
INSERT INTO `cms_crontab` VALUES (10, '测试秒级任务', 2, 5, '{\"month\":null,\"week\":null,\"day\":null,\"hour\":null,\"minute\":null,\"second\":\"10\"}', '*/10 * * * * *', 'return 456;', 2102, 1713763990, 0, 1713754772, 0, 1);

当添加好定时任务后,请耐心等待1分钟后,定时任务才会开始正常运行

尽量不要设置小于5秒的定时任务

联系方式

安装使用中,如果遇到错误,可以联系我 1020857701@qq.com

版本历史记录
1.0.5
2024-05-30
1、修改了配置选项,增加了端口的配置,方便同一个服务器启用多个项目时,内部通讯端口的修改
2、对通讯消息更改失败的状态,增加了错误提示
1.0.4
2024-05-29
修复插件在后台安装后,无法卸载的bug
1.0.3
2024-05-29
修改了导入的sql语句,之前的sql语句 备注中有[]; () 等字段,会导致导入不成功,
1.0.2
2024-05-29
优化了列表界面的显示,内置了日志文件删除,定时任务日志的删除
评分及评论
5 满分5分
awei12380 7天前
crontabs\index.html 报错提示$v是undefined,但是$taskConfig非空。可以把config/view.php中修改为'handler' => ThinkPHP::class, 修改index.html 为TP模版语法的遍历。可以解决报错。
南宫春水 28天前
包删除掉了吗?怎么找不到包了
qvo0ovp 2024-10-16
404
zz_rw 2024-10-11
下载返回404
xuezhileikaku 2024-07-15
crontabs\index.html页面有个判断报错,$taskConfig再循环之前做下判断,修改后: if(!empty($taskConfig)){ foreach($taskConfig as $v){ echo '<option value="'.$v["target"].'">'.$v['title'].'</option>';} }
cbw7172002 2024-06-18
版本都1.0.5了 config里没改过来
×
🔝