Yii2 后台脚本管理系统 [ 2.0 版本 ]
Yii2 后台脚本管理
管理后台通常有些脚本需要运行,这些脚本有些是只运行一次,有些是每隔一段时间运行,有些是每天固定时间运行的,如果更加方便地管理这些脚本呢?我写了一个任务管理后台,在新加脚本后,只需进行简单配置,便可以让这些脚本自动运行。
思路:
- 启动主进程(通常放到crontab中,每隔几分钟检测一下,如果没启动,则自动启动,否则不再重新启动)。
- 由主进程扫描任务列表,如果有符合条件的任务,则启动。
- 主进程将检查超时任务并自动杀掉。
优点:
新建脚本只需关心业务逻辑,如何执行可以放到上线后自动配置生效。任务启动和结束自动记录执行时间,在
任务执行期间可随意加入业务日志,在控制台中很方便就可以查看所有任务执行的日志。
时间仓促,写得比较简单,有做过的朋友可以一起讨论下。
Git地址: https://github.com/leonlee985/console-task-management
系统截图如下:
新建--》
列表--》
点击查看执行日志--》
LeonLee
注册时间:2016-04-18
最后登录:2019-05-31
在线时长:8小时45分
最后登录:2019-05-31
在线时长:8小时45分
- 粉丝10
- 金钱55
- 威望30
- 积分435
热门源码
- 基于 Yii 2 + Bootstrap 3 搭建一套后台管理系统 CMF
- 整合完 yii2-rbac+yii2-admin+adminlte 等库的基础开发后台源码
- 适合初学者学习的一款通用的管理后台
- yii-goaop - 将 goaop 集成到 Yii,在 Yii 中优雅的面向切面编程
- yii-log-target - 监控系统异常且多渠道发送异常信息通知
- 店滴云1.3.0
- 面向对象的一小步:添加 ActiveRecord 的 Scope 功能
- Yii2 开源商城 FecShop
- 基于 Yii2 开发的多店铺商城系统,免费开源 + 适合二开
- leadshop - 基于 Yii2 开发的一款免费开源且支持商业使用的商城管理系统
共 7 条评论
真心点赞,辛苦啦。
好东西!真心点赞!!!
好东西!真心不错啊,学习了。
非常适用 谢谢
我当时考虑了以下一些情况,有哪些没考虑到的情况麻烦大家指出:
解决方法: 把主进程放到crontab里,隔一段时间调用一次(根据脚本的重要性设置时间长短)。这样即使进程突然挂了,过一段时间也会自动重启。机器挂了,在重启时也会自动启动。(当然,如果服务器挂了还没立即检测到并重启,那就该找运维同学谈谈心了.)
解决方法: 在启动脚本的时候,检查内存中是否有该脚本的进程,如有就不调用,避免并发引起问题。
当然,如果希望并发,可以考虑使用多线程的方法。不过不太建议使用PHP做多线程。
解决方法:设置脚本最大执行时间,如果主进程扫描到某脚本执行超时,则强制杀掉该进程。
解决方法:在控制器里封装了公共的日志记录方法,脚本里可以打印一些关键信息到该日志里,然后脚本在执行完成后应该返回true/false告知主进程是否调用成功。所有的日志都记录在数据库里,方便查询。
无固定解决方法,根据实际业务决定不同类型脚本是否需要失败重试以及重试次数。甚至可以自己加入监控,脚本失败时发邮件或通知。
那些界面什么的都没有啊,请问怎样让他跑起来?
这个主要是为了console的管理,我只给出了核心代码,至于界面长什么样子,你可以自己定制。
求完整后台源码