Есть ли утонченные API Java Workqueue?
-
28-09-2019 - |
Вопрос
Я ищу API на рабочем виде, предлагающий следующие функции:
java.util.Queue
совместимый- Предложения (Необязательно) Набор-семантический
- Одно- и пакетная обработка
- параллелизм (конечно)
- планирование
- Различные политики обработки
- подождите до следующего запланированного исполнения
- Предварительный процесс, если размер партии
- Отложенная обработка (минимальное время в очереди, перед обработкой)
- Настойчивость (необязательно)
В JDK много интересных реализаций, например java.util.DelayQueue
который я мог бы использовать. Я просто хотел убедиться, что я не изобретую руль.
Решение
Вы все еще ищете ответ, чтобы принять?
Я думаю, что ваши потребности лучше всего будут выполнены, используя java.util.concurrent
Структура исполнительника. Смотрите API (Вот хороший старт). Там есть отличное сопровождение сообщества, вы можете найти его в веб-сайт. Отказ Если вы в мертвых деревьях, Java параллелизм на практике (JCIP) Предоставляет отличный ресурс.
Framewere Framework позволяет создавать задачи (в виде Runnables или Callables), предоставляет несколько схем для синхронизации или иным образом заказа на заказ друг на друга.
Наконец, появляющаяся инфраструктура Forkjoin (FJ) вполне уместена и может соответствовать вашим потребностям. API есть здесь, А. Хорошая бумага здесь, и ан Вступительная статья здесь.
Надеюсь это поможет.
Ja.
Другие советы
Посмотри на API планировщика планировщика кварцевых работ
Кварцевые особенности : http://www.quartz-scheduler.org/overview/features.html.
Я не уверен в своей совместимости Java.util.Queue. Но это обеспечивает большую часть функций, связанных с планированием и выполнением работы.
Короткий и прямой ответ - нет. Вы должны откатиться, или вы просто будете служить бесплатным тестером для чужих экспериментов. Таким образом, по крайней мере, вы проведете время, создавая систему именно для ваших потребностей, зная все основные части и находясь в полном контроле вместо того, чтобы принимать в большую и неизвестную зависимость.
Хотя у него нет никаких функций планирования, JDK имеет java.util.concurrent.SynchronousQueue
что может быть полезно.