一个定时任务管理器,基于Go语言和beego框架开发。用于统一管理项目中的定时任务,提供可视化配置界面、执行日志记录、邮件通知等功能,无需依赖*unix下的crontab服务。
项目背景
开发此项目是为了解决本人所在公司的php项目中定时任务繁多,使用crontab不好管理的问题。我所在项目的定时任务也是PHP编写的,属于整个项目的一部分,我希望能有一个系统可以统一配置这些定时任务,并且可以查看每次任务的执行情况,任务执行完成或失败能够自动邮件提醒开发人员,因此做了这个项目。
功能特点
- 统一管理多种定时任务。
- 秒级定时器,使用crontab的时间表达式。
- 可随时暂停任务。
- 记录每次任务的执行结果。
- 执行结果邮件通知。
界面截图
安装说明
系统需要安装Go和mysql。
1、安装go语言环境(go1.9.2.linux-amd64.tar.gz):解压缩到路径/usr/local/go
go下载地址:https://dl.gocn.io/
2、 添加环境变量(vi /etc/profile):
export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=/usr/local/webcron export AUTO_GOPATH=1
3、获取源码(如git未安装则会报错)
$ go get github.com/lisijie/webcron
4 打开配置文件 conf/app.conf,修改相关配置(修改任务数和数据库配置 ):
appname = webcron httpport = 8000 runmode = dev # 允许同时运行的任务数 jobs.pool = 50 # 站点名称 site.name = 定时任务管理器 # 数据库配置 db.host = ip端口(192.168.11.11) db.user = 用户名 db.password = 密码 db.port = 3306 db.name = dataserver db.prefix = t_ db.timezone = Asia/Shanghai # 邮件服务器配置 mail.queue_size = 100 mail.from = no-[email protected] mail.host = smtp.example.com mail.port = 25 mail.user = username mail.password = your password
5 创建数据库webcron ,再导入install.sql
6 创建数据库表
$ mysql -u username -p -D webcron < install.sql
7 编译构建webcron
$ **cd** /usr/local/webcron/src/github.com/lisijie/webcron
$ go build
8 运行webcron
$**cd** /usr/local/webcron/src/github.com/lisijie/webcron
$ ./webcron 或 $ nohup ./webcron 2>&1 > error.log &
设为后台运行
9 访问
帐号:admin 密码:admin888