在开发过程中,往往需要系统执行一些定时的任务,例如我们需要将数据进行迁移,又或者需要做一些数据的离线统计工作,这些都需要定时任务来进行处理。传统的方法就是quartz来写个定时任务,然后该机器就会在特定时间执行我们要执行的代码,但是假如这台机器出现故障,那么这个定时任务就不会执行。
在集群环境中,我们希望即使在某台机器出现故障,那么其他机器就可以将任务接管过来,继续执行任务。
项目github:https://github.com/Mrfogg/gojob
使用方式
如下代码,我的机器已经部署了etcd,端口是2379
package gojob
import (
"testing"
"fmt"
"github.com/coreos/etcd/clientv3"
)
var client *clientv3.Client
//初始化etcd client对象
func init() {
var err error
cli