定时任务管理

免费
类型 完整应用
版本 1.0.0
版本更新时间 16天前
大小 26.27 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 install webman/redis-queue illuminate/redis
# 业务锁
composer require webman-tech/symfony-lock

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

您可以执行下方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秒的定时任务,我在win系统上使用时,会碰到这样的弹窗,我不确定是不是因为任务请求间隔太少的原因导致的

但是我很肯定,它是这个定时任务应用所带来的,另外 linux系统我并没有测试,不过,它应该会运行的比win系统要好

如果出现报错,可前往 plugin/tuCrontabs/config/app.php 将enable 设置为false 暂时关闭定时任务,解决报错后再启用,我在win系统上, 部署了一个全新的项目测试过,应该是不存在遗漏的依赖了。此条建议仅作为应急方案

联系方式

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

版本历史记录
1.0.0
17天前
1.0 功能完善
评分及评论
0 满分5分
🔝