首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Redisson的分布式独占任务?

使用Redisson的分布式独占任务?
EN

Stack Overflow用户
提问于 2020-08-05 22:34:04
回答 1查看 172关注 0票数 1

我正在使用Redisson分布式执行器服务。任务类A被设计用来处理由队列ID标识的给定队列。有多个这样的队列。我需要确保在集群中的任何时候,在同一队列上工作的任务类A的实例不超过一个。

代码语言:javascript
复制
Task class A instance1 working on queue1    
Task class A instance2 working on queue2

不允许:

代码语言:javascript
复制
Task class A instance1 working on queue1
Task class A instance2 working on queue1

有大量这样的队列,并且它们是动态变化的。因此,任务实例的预分配不是一个选项。

在Quartz分布式调度器的世界中,对应的是所谓的独占作业,由@DisallowConcurrentExecution实现。在Akka框架的世界中,默认情况下,角色模型会自动实现另一件类似的事情。

如何使用Redisson executor实现这一点?如果不是直接的,这可以通过一些分布式锁(这在Redisson中很方便)来实现吗?

EN

回答 1

Stack Overflow用户

发布于 2021-04-30 00:28:37

我正在寻找类似的东西,并最终编写了自己的分布式任务逻辑,它在引擎盖下使用Redis缓存进行协调。redis缓存有一个分布式锁(我们选择的任何键)以及一个下一次执行时间字段。这不是最漂亮的东西,但它起作用了。

我不相信任何东西都存在于盒子之外。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63267465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档