Есть ли сложный API Java WorkQueue? - PullRequest
6 голосов
/ 16 августа 2010

Я ищу API WorkQueue, предлагающий следующие функции:

  • java.util.Queue совместимый
  • предлагает (необязательно) Set-semantic
  • single- andпакетная обработка
  • параллелизм (конечно)
  • планирование
  • различные политики обработки
    • ожидание следующего запланированного выполнения
    • предварительная обработка, если размер пакета соответствует
    • отложенная обработка (минимальное время в очереди до обработки)
  • постоянство (необязательно)

Естьмного интересных реализаций в jdk, например java.util.DelayQueue, которые я мог бы использовать.Я просто хотел убедиться, что я не изобретаю велосипед.

Ответы [ 4 ]

3 голосов
/ 16 августа 2010

Посмотрите на API кварцевого планировщика заданий

Кварцевые функции : http://www.quartz -scheduler.org / Overview / features.html

Я не уверен в его совместимости с java.util.Queue.Но он предоставляет большинство функций, связанных с планированием и выполнением заданий.

2 голосов
/ 25 августа 2010

Вы все еще ищете ответ, чтобы принять?

Я думаю, что ваши потребности лучше всего будут удовлетворены с использованием среды исполнения java.util.concurrent. Смотрите API ( вот хорошее начало ). Существует отличное сообщество поддержки, вы можете найти его на веб-сайте по интересам параллелизма . Если вам нравятся мертвые деревья, Java Concurrency in Practice (JCiP) предоставляет отличный ресурс.

Среда executor позволяет создавать задачи (в форме Runnables или Callables), предоставляет несколько схем для синхронизации или иного упорядочивания задач относительно друг друга.

Наконец, новая инфраструктура ForkJoin (FJ) вполне пригодна для использования и может соответствовать вашим потребностям. API - это здесь , хорошая статья здесь и вводная статья здесь .

Надеюсь, это поможет.

JA

1 голос
/ 26 августа 2010

Короткий и прямой ответ - нет. Вы должны выкатить свои собственные, или вы просто собираетесь стать бесплатным тестером для чужих экспериментов. Так что, по крайней мере, вы потратите время на создание системы, точно соответствующей вашим потребностям, зная все основные части и находясь под полным контролем, вместо того, чтобы принимать большую и неизвестную зависимость.

0 голосов
/ 24 августа 2010

Несмотря на то, что JDK не имеет никаких функций планирования, в JDK есть java.util.concurrent.SynchronousQueue, что может быть полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...