统一任务调度平台scheduler for golang

13614 · · 7224 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

在企业项目开发中会定时执行对应的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/gocode\nexport GOROOT=/usr/local/go\nexport GOBIN=$GOROOT/bin\nexport GOPKG=$GOROOT/pkg/tool/linux_amd64\nexport GOARCH=amd64\nexport GOOS=linux\nexport PATH=.:$PATH:$GOBIN:$GOPKG' >>/etc/profile

#

source /etc/profile

#

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/


有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:13614

查看原文:统一任务调度平台scheduler for golang

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

7224 次点击  
加入收藏 微博
2 回复  |  直到 2018-07-10 20:08:48
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传