【实战总结】分布式任务交替协作

目录

1、Redis实现方案

1.1 Redis API使用

1.2 交互方案

2、Zookeeper实现方案


1、Redis实现方案

1.1 Redis API使用

利用哈希表结构进行分布式任务执行顺序和执行时间控制来解决限频问题

hlen 查看哈希表中key数量,用来检测当前任务数量,同一时刻只允许存在一个任务

hset key field value 存放任务[field],并设置执行时间戳[value],获取执行权的任务线程可以设置下一个可以执行的任务类型,这里是交替执行,会控制进行任务类型替换

hget key 获取当前授权的执行任务及预执行时间戳

hdel key filed 移除授权任务,获取执行权的任务线程可以对当前任务类型进行移除

 

为何不用字符串类型进行存储?

如果仅是两个任务交替执行,字符串存储也是可以的,但是对于多任务情况下,字符串结构要么维护多个KEY,要么就需要对value进行序列化存储,多一层数据转换,并不是很方便

哈希表读取任务列表更快,key是唯一的,只需要变更存储filed,且可以提供API级别防重不需重复判断,而且value存储时间戳即可

1.2 交互方案

 

2、Zookeeper实现方案

//TODO 监听节点变化来驱动,以后有时间再尝试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大摩羯先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值