我正在寻找一个提供以下功能的 WorkQueue API:
java.util.Queue
兼容的- 提供(可选)集语义
- 单一和批处理
- 并发(当然)
- 调度
- 不同的处理策略
- 等到下一次计划执行
- 预处理,如果满足批量大小
- 延迟处理(队列中的最短时间,在被处理之前)
- 持久性(可选)
jdk 中有很多有趣的实现,例如java.util.DelayQueue
我可以使用的。我只是想确保我没有重新发明轮子。
我正在寻找一个提供以下功能的 WorkQueue API:
java.util.Queue
兼容的jdk 中有很多有趣的实现,例如java.util.DelayQueue
我可以使用的。我只是想确保我没有重新发明轮子。
石英特性:http ://www.quartz-scheduler.org/overview/features.html
我不确定它的 java.util.Queue 兼容性。但它提供了与作业调度和执行相关的大部分功能。
你还在寻找一个可以接受的答案吗?
java.util.concurrent
我认为使用' executor 框架最能满足您的需求。请参阅 API(这是一个好的开始)。有一个出色的支持社区,您可以在并发兴趣网站上找到它。如果您喜欢死树,Java Concurrency in Practice (JCiP)提供了极好的资源。
执行器框架允许您创建任务(以 Runnables 或 Callables 的形式),提供了几种用于同步或以其他方式对任务进行排序的方案。
最后,新兴的 ForkJoin (FJ) 基础设施非常实用,可能符合您的需求。API 在这里,一篇好论文在这里,还有一篇介绍性文章在这里。
希望这可以帮助。
JA
简短而直接的答案 - 不。您必须推出自己的产品,否则您将成为其他人的实验的免费测试人员。因此,至少您会花时间完全满足您的需求,了解所有核心部分并完全控制,而不是承担巨大且未知的依赖。
虽然它没有任何调度功能,但 JDK 有java.util.concurrent.SynchronousQueue
可能有用。