是否有复杂的Java WorkQueue API?

时间:2010-08-16 08:39:49

标签: java android android-asynctask scheduled-tasks task-queue

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

  • java.util.Queue兼容
  • 提供(可选)Set-semantic
  • 单处理和批处理
  • 并发(当然)
  • 调度
  • 不同的处理政策
    • 等到下一次计划执行
    • 预处理,如果符合批量大小
    • 延迟处理(队列中的最短时间,处理前)
  • 持久性(可选)

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

4 个答案:

答案 0 :(得分:3)

查看Quartz Job Scheduler API

石英功能http://www.quartz-scheduler.org/overview/features.html

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

答案 1 :(得分: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

答案 2 :(得分:1)

简短而直接的回答 - 没有。你必须自己推出,或者你只是作为别人实验的免费测试员。因此,至少你会花时间制作一个完全符合你需求的系统,了解所有核心部分并完全控制,而不是采取大的和未知的依赖。

答案 3 :(得分:0)

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