统一任务调度平台scheduler for golang
在企业项目开发中会定时执行对应的job,对于一些简单少的job可以直接使用调度器调度执行任务。当随着公司的业务越来越多,执行任务越来越多。那么直接使用任务调度器调度任务执行会变得臃肿,而且对于任务是动态配置不可实现。如:想某一个时刻停止任务的执行、删除此任务然后修改更新任务执行时间等,如某一个任务配置到多台机器上如何做到不可用时,进行转移等问题。 #基础环境 #GO环境 cd /usr/local/src/ mkdir -p $HOME/gocode/src # tar -zxf go1.8.3.linux-amd64.tar.gz #https://www.golangtc.com/download # echo -e 'export GOPATH=$HOME/gocodenexport GOROOT=/usr/local/gonexport GOBIN=$GOROOT/binnexport GOPKG=$GOROOT/pkg/tool/linux_amd64nexport GOARCH=amd64nexport GOOS=linuxnexport PATH=.:$PATH:$GOBIN:$GOPKG' >>$HOME/.bashrc # source $HOME/.bashrc # go version go version go1.8.3 linux/amd64 #DB环境 yum install epel-release ntpdate chrony -y rpm -ivh http://repo.mysql.com/mysql-community-release-el6.rpm yum install mysql-server mysql-client -y service mysqld start mysqladmin -uroot password '123456' >create database scheduler;grant all privileges on *.* to@192.168.28.131 identified by '12345678';flush privileges; #scheduler安装 cd $GOPATH/src git clone https://github.com/shotdog/scheduler go get github.com/astaxie/beego go get github.com/shotdog/quartz go get github.com/go-sql-driver/mysql #init db scheduler.sql mysql -uroot -p scheduler < scheduler.sql #modify conf/app.conf -->database config vim scheduler/conf/app.conf db_path = /usr/bin/mysql db_host = 192.168.28.131 db_port = 3306 db_user = root db_pass = 12345678 db_name = scheduler db_type = mysql #modify main.go -->database config func init() { orm.RegisterDriver("mysql",orm.DRMySQL) orm.RegisterDataBase("default","mysql","root:12345678@/scheduler?charset=utf8&loc=Local") orm.RegisterModel(&entity.JobInfo{},&entity.JobInfoHistory{},&entity.JobSnapshot{}) } #scheduler运行 cd $GOPATH cd src cd scheduler go build main.go ./main #client测试 cd $HOME/src && git clone https://github.com/shotdog/scheduler-client.git cd scheduler-client go build main.go ./main Link https://github.com/shotdog/scheduler https://github.com/shotdog/kitty http://www.quartz-scheduler.org/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |