Я пытаюсь найти эквивалент проекта Celery для среды Java, я просмотрел пакет Spring Batch, но есть ли какие-то лучшие альтернативы для распределенных очередей задач.
Спасибо.
Я пытаюсь найти эквивалент проекта Celery для среды Java, я просмотрел пакет Spring Batch, но есть ли какие-то лучшие альтернативы для распределенных очередей задач.
Спасибо.
Что делает сельдерей, очень похоже на EIP и SEDA с удобной планировкой задач. (все, что вам осталось сделать, это добавить несколько DB и асинхронную HTTP-сеть, и у вас есть полный пакет качества предприятия).
В основном в Java существует способ Spring, способ Java EE и способ Hadoop:
Это примерно в порядке упрощения настройки.
Jesque (https://github.com/gresrun/jesque) - это библиотека очереди распределенных задач Java. Это Java-порт библиотеки Resque (https://github.com/defunkt/resque), который описан на этой странице GitHub:
Resque (произносится как "rescue" ) - это библиотека с поддержкой Redis для создания фоновых заданий, размещение этих заданий в нескольких очередях и обработка их позже ".
Кварц работал у меня в прошлом. Теперь он интегрирован с Terracotta, поэтому его следует легко распространять. http://quartz-scheduler.org/
Сельдерей в основном основан на Erlang/RabbitMQ. В RabbitMQ есть клиентская библиотека Java, которая может быть полезна. Кроме того, есть octobot, у которого есть сервер RabbitMQ.
Ближайшая вещь, которую я нашел, - Octobot: https://github.com/cscotta/Octobot Не так много документации, хотя... там был сайт для него на octobot.taco.cat, но я не видел этого груза в последнее время. Я лично не использовал Octobot, но я часто видел его рекомендованным как Celery для Java.
Мне не удалось найти что-либо столь же простое в использовании, как Celery для Java. Большинство решений рекомендовало использовать очередь сообщений. Но Сельдерей сидит на одном уровне абстракции выше, чем в очереди. Вместо сообщений и потребителей вы можете думать о задачах и рабочих, результатах, повторениях и т.д.
Мне также понадобилось реализовать некоторый мост для компании, использующей как Java, так и Python, поэтому я начал этот проект:
celery-java - клиент и работник Celery на Java, совместимый со своими коллегами Python.
Остерегайтесь, он очень незрелый на данный момент.
Apache ActiveMQ http://activemq.apache.org/
Apache Kafka http://kafka.apache.org/