是否有复杂的 Java WorkQueue API?

发布于 2024-09-14 11:14:21 字数 358 浏览 11 评论 0原文

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

  • java.util.Queue 兼容
  • 提供(可选) 设置语义
  • 单处理和批处理
  • 并发(当然)
  • 调度
  • 不同的处理策略
    • 等待下一次计划执行
    • 如果批量大小满足则进行预处理
    • 延迟处理(处理前排队的最短时间)
  • 持久化(可选)

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

I am looking for a WorkQueue API offering the following features:

  • java.util.Queue compatible
  • offers (optional) Set-semantic
  • single- and batch-processing
  • concurrency (of course)
  • scheduling
  • different processing policies
    • wait until next scheduled execution
    • pre-process, if batch size met
    • delayed processing (minimum time in queue, before being processed)
  • persistence (optional)

There are a lot of interesting implementations in the jdk, e.g. java.util.DelayQueue which i could use. I just wanted to make sure i am not reinventing the wheel.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

指尖微凉心微凉 2024-09-21 11:14:21

查看 Quartz Job Scheduler API

Quartz 功能 : http://www.quartz-scheduler.org/overview/features.html< /a>

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

Have a look at Quartz Job Scheduler API

Quartz Features : http://www.quartz-scheduler.org/overview/features.html

I am not sure about its java.util.Queue compatibility. But it provides most of features related to Job scheduling and execution.

逆蝶 2024-09-21 11:14:21

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

我认为使用 java.util.concurrent 的执行器框架可以最好地满足您的需求。请参阅 API(这是一个好的开始)。有一个优秀的支持社区,您可以在并发兴趣网站。如果您对死树感兴趣,Java 并发实践 (JCiP) 提供了极好的资源。

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

最后,新兴的 ForkJoin (FJ) 基础设施非常有用,可能会满足您的需求。 API 位于此处,一个 好论文在这里,还有一篇 此处介绍性文章

希望这有帮助。

日本航空协会

Are you still looking for an answer to accept?

I think your needs would best be met using java.util.concurrent's executor framework. See the API (here's a good start). There's an excellent support community, you can find it at the concurrency-interest web site. If you're into dead trees, Java Concurrency in Practice (JCiP) provides an excellent resource.

The executor framework allows you to create tasks (in the form of Runnables or Callables), provides several schemes for synchronizing or otherwise ordering tasks with respect to one another.

Finally, the emerging ForkJoin (FJ) infrastructure is quite usable and may match your needs. API is here, a good paper is here, and an introductory article here.

Hope this helps.

JA

む无字情书 2024-09-21 11:14:21

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

Short and straight answer - no. You have to roll out your own or you are just going to serve as a free tester for someone else's experiments. So at least you'll spend time making a system exactly for your needs, knowing all core parts and being in full control instead of taking in big and unknown dependency.

沫尐诺 2024-09-21 11:14:21

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

Although it does not have any scheduling functionality, the JDK has java.util.concurrent.SynchronousQueue which may be useful.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文