webcron
一个定时任务管理器,基于Go语言和beego框架开发。用于统一管理项目中的定时任务,提供可视化配置界面、执行日志记录、邮件通知等功能,无需依赖*unix下的crontab服务。
源项目地址
https://github.com/lisijie/webcron
项目背景
开发此项目是为了解决本人所在公司的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 -p
mysql > create database webcron;
mysql > exit;
3、导入数据
$ cd /opt/go/src/webcron
$ mysql -uroot -p -D webcron < ./install.sql
4用go build编译一个可执行文件webcron
$ cd /opt/go/src/webcron
$ go build
5、修改配置文件app.conf
$ sudo vim /opt/go/src/webcron/conf/app.conf
appname = webcron
httpport = 8000
runmode = dev
# 允许同时运行的任务数
jobs.pool = 10
# 站点名称
site.name = 定时任务管理器
# 数据库配置
db.host = 127.0.0.1 db.user = root db.password = "123456" db.port = 3306 db.name = webcron db.prefix = t_ db.timezone = Asia/Shanghai
# 邮件服务器配置
mail.queue_size = 100 mail.from = "test@test.com"
#以下表示接收信息的是企业邮箱,个人邮箱则设为:smtp.qq.com
mail.host = "smtp.exmail.qq.com" mail.port = 25 mail.user = "test@test.com" mail.password = "123456"
6、运行webcon
$ ./webcron
或
$ nohup ./webcron 2>&1 > error.log &
7、添加开机启动
# 编写启动脚本
$ vim /apt/webcron.sh
#!/bin/bash
cd /opt/go/src/webcron/ && go build
chmod +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 &