webcron
一个定时任务管理器,基于Go语言和beego框架开发。用于统一管理项目中的定时任务,提供可视化配置界面、执行日志记录、邮件通知等功能,无需依赖*unix下的crontab服务。
项目背景
开发此项目是为了解决本人所在公司的PHP项目中定时任务繁多,使用crontab不好管理的问题。我所在项目的定时任务也是PHP编写的,属于整个项目的一部分,我希望能有一个系统可以统一配置这些定时任务,并且可以查看每次任务的执行情况,任务执行完成或失败能够自动邮件提醒开发人员,因此做了这个项目。功能特点
- 统一管理多种定时任务。
- 秒级定时器,使用crontab的时间表达式。
- 可随时暂停任务。
- 记录每次任务的执行结果。
- 执行结果邮件通知。
界面截图
安装说明
1、下载定时管理器
$ cd /opt$ sudo go
get github.com/lisijie/webcron
$ cd go/src$ sudo git clone https://github.com/lisijie/webcron.git
2、创建数据库
$ mysql -uroot -pmysql > create database webcron;mysql > exit;3、导入数据
$ cd /opt/go/src/webcron$ mysql -uroot -p -D webcron < ./install.sql4用go build编译一个可执行文件webcron
$ cd /opt/go/src/webcron$ go build
5、修改配置文件app.conf
$ sudo vim /opt/go/src/webcron/conf/app.confappname = webcronhttpport = 8000runmode = dev# 允许同时运行的任务数jobs.pool = 10# 站点名称site.name = 定时任务管理器# 数据库配置db.host = 127.0.0.1db.user = rootdb.password =
"123456"
db.port = 3306db.name = webcrondb.prefix = t_db.timezone = Asia/Shanghai# 邮件服务器配置mail.queue_size = 100#以下表示接收信息的是企业邮箱,个人邮箱则设为:smtp.qq.commail.host =
"smtp.exmail.qq.com"
mail.port = 25 mail.user =
"[email protected]"
mail.password =
"123456"
6、运行webcon
$ ./webcron或$ nohup ./webcron 2>&1 > error.log &
7、添加开机启动
# 编写启动脚本$ vim /apt/webcron.sh#!/bin/bashcd /opt/go/src/webcron/ && go buildchmod +x /opt/go/src/webcron/webcron/opt/go/src/webcron/webcron &# 设置可执行权限$ sudo chmod +x /apt/webcron.sh# 添加开机启动$ sudo vim /etc/rc.local
/bin/bash /apt/webcron.sh &