2010-08-16 33 views
6

我找一个工作队列API提供以下功能:是否有复杂的Java WorkQueue API?

  • java.util.Queue兼容
  • 报价(可选)设置的语义
  • 单和批处理
  • 并发(当然)
  • 调度
  • 不同的加工政策
    • 等待直到下一个预定执行
    • 预过程中,如果批量大小满足
    • 延迟处理(在队列最小时间,在处理之前)
  • 持久性(可选)

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

回答

2

您还在寻找接受的答案吗?

我认为您最需要的就是使用java.util.concurrent的执行者框架来满足您的需求。查看API(here's a good start)。有一个很好的支持社区,你可以在concurrency-interest web site找到它。如果你进入死树,Java Concurrency in Practice (JCiP)提供了一个很好的资源。

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

最后,新兴的ForkJoin(FJ)基础架构非常实用,可能会满足您的需求。 API是heregood paper is hereintroductory article here

希望这会有所帮助。

JA

0

尽管它没有任何调度功能,但JDK有java.util.concurrent.SynchronousQueue这可能是有用的。

1

短而直的答案 - 没有。你必须推出自己的产品,或者你只是作为一个免费的测试人员来进行别人的实验。所以至少你会花时间制作一个完全满足你需求的系统,了解所有核心部分并完全控制,而不是承担巨大而未知的依赖。