6

我正在寻找一个提供以下功能的 WorkQueue API:

  • java.util.Queue兼容的
  • 提供(可选)集语义
  • 单一和批处理
  • 并发(当然)
  • 调度
  • 不同的处理策略
    • 等到下一次计划执行
    • 预处理,如果满足批量大小
    • 延迟处理(队列中的最短时间,在被处理之前)
  • 持久性(可选)

jdk 中有很多有趣的实现,例如java.util.DelayQueue我可以使用的。我只是想确保我没有重新发明轮子。

4

4 回答 4

3

看看Quartz Job Scheduler API

石英特性http ://www.quartz-scheduler.org/overview/features.html

我不确定它的 java.util.Queue 兼容性。但它提供了与作业调度和执行相关的大部分功能。

于 2010-08-16T09:14:55.017 回答
2

你还在寻找一个可以接受的答案吗?

java.util.concurrent我认为使用' executor 框架最能满足您的需求。请参阅 API(这是一个好的开始)。有一个出色的支持社区,您可以在并发兴趣网站上找到它。如果您喜欢死树,Java Concurrency in Practice (JCiP)提供了极好的资源。

执行器框架允许您创建任务(以 Runnables 或 Callables 的形式),提供了几种用于同步或以其他方式对任务进行排序的方案。

最后,新兴的 ForkJoin (FJ) 基础设施非常实用,可能符合您的需求。API 在这里,一篇好论文在这里,还有一篇介绍性文章在这里

希望这可以帮助。

JA

于 2010-08-25T16:38:45.263 回答
1

简短而直接的答案 - 不。您必须推出自己的产品,否则您将成为其他人的实验的免费测试人员。因此,至少您会花时间完全满足您的需求,了解所有核心部分并完全控制,而不是承担巨大且未知的依赖。

于 2010-08-26T13:20:49.643 回答
0

虽然它没有任何调度功能,但 JDK 有java.util.concurrent.SynchronousQueue可能有用。

于 2010-08-24T18:38:05.733 回答