基于etcd的分布式定时任务框架

本文介绍了如何使用etcd构建分布式定时任务框架,以解决单机定时任务在集群环境中的故障容错问题。项目参考了robfig/cron库并进行了修改,包括时间表达式解析、节点心跳和一致性哈希等关键功能,确保任务在节点故障时能被其他节点接管执行。
摘要由CSDN通过智能技术生成

  在开发过程中,往往需要系统执行一些定时的任务,例如我们需要将数据进行迁移,又或者需要做一些数据的离线统计工作,这些都需要定时任务来进行处理。传统的方法就是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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值