使用php开发的定时任务监控系统
本人所在公司有的PHP项目中需要写爬虫抓取页面,监控一些页面访问是否正常,数量多而繁杂,之前需要写很多类似但又有不同的脚本程序,不容易管理,希望能有一个系统可以进行统一管理(小型监控cms,可以对不同任务进行增删改查,设置任务执行时间,执行情况通知,日志记录等),因此做了这个项目。项目核心借助linux中的cronjob(一个主cronjob周期执行根据系统任务列表批量生成子cronjob列表去执行相关任务),监控任务支持分类,不同分类可以对应不同处理程序(处理程序不是本系统重点),本系统支持任务项细粒度配置,可以配置通知类型,不同通知类型有不同通知程序(通知程序不是本系统重点)。任务支持批量任务执行及单任务执行。有log记录过往执行情况。
本系统主要是提供一个框架,用户可根据自己的意图自由设置不同分类支持的任务项(任务执行脚本支持),用户通过设置生成任务,相关执行脚本解析任务并执行
- 统一管理多种类任务项。
- 秒级定时器,使用crontab的时间表达式。
- 可随时更新任务。
- 记录每次任务的执行日志。
- 执行结果支持通知。
- 扩展性强(可随时添加其他种类监控,添加相关任务项配置,处理程序,通知程序即可)
系统需要安装Git,Php和MySQL。
获取源码
$ git clone git@github.com:yantianpi/monitor.git
数据库创建
创建数据库github_monitor,再依次导入源码db目录下的initDDL.sql,dataDML.sql
cron初始化
执行脚本generateCron.php,在当前用户下初始化cron列表即可
运行
配置相关服务器,访问即可
待完善
该系统目前仅支持任务的新增,创建,修改,测试,简单页面抓取判断。工具上暂不支持日志管理,任务分类管理,邮件通知管理,任务项filter