为了账号安全,请及时绑定邮箱和手机立即绑定

分布式环境下,定时任务或异步处理如何保持幂等性?

分布式环境下,定时任务或异步处理如何保持幂等性?

函数式编程 2019-03-21 18:15:48
如题:分布式环境下,定时任务或异步处理如何保持幂等性?
查看完整描述

9 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

个人并没有这方面的经验,不过公司里的做法是用IP做判断,指定的IP才能去执行这个定时任务。

以下为个人空想,并无实践经验:
搭建一个公共应用专门处理定时任务,然后提供消息接口给具体应用调用。


查看完整回答
反对 回复 2019-04-22
?
收到一只叮咚

TA贡献1821条经验 获得超4个赞

用事务来实现吧,分布式事务,或者消息队列


查看完整回答
反对 回复 2019-04-22
?
慕容森

TA贡献1853条经验 获得超18个赞

可以考虑具备ack机制的消息队列,比如RabbitMQ等,既保证了一条任务只分配给一个worker,也保证了任务成功与否的完整性


查看完整回答
反对 回复 2019-04-22
?
MMTTMM

TA贡献1869条经验 获得超4个赞

我们是通过zk调度来实现的,分布式环境中通一任务最多只能有一台机器执行,zk很好实现这种功能


查看完整回答
反对 回复 2019-04-22
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

到目前为止所有答案都是错的,包括那个被采纳的。原因是,定时任务或异步处理,与幂等性无关。


查看完整回答
反对 回复 2019-04-22
?
阿晨1998

TA贡献2037条经验 获得超6个赞

redis + token就可以的


查看完整回答
反对 回复 2019-04-22
?
SMILET

TA贡献1796条经验 获得超4个赞

用队列,取了就没了,只会执行一次,执行失败在丢回队列等下次


查看完整回答
反对 回复 2019-04-22
  • 9 回答
  • 0 关注
  • 971 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信