ТРЕБОВАНИЕ:
В моем проекте (выполняется в распределенной среде) у нас есть требование, чтобы задание планировалось на фиксированное время с начальной задержкой в 1 минуту, и оно будет повторяться, если выполнение задания не выполнено, и может выполнить максимальную повторную попытку 10 раз. с задержкой 2 минуты между каждым.
ИНСТРУМЕНТЫ, С КОТОРЫМИ МЫ МОЖЕМ ДОСТИГНУТЬ ЖЕ:
Я могу достичь той же необходимой функциональности с помощью spring-retry
. Но есть несколько доступных контейнеров (распределенная среда). Такие инструменты, как Rabbit-MQ
, Amazon-sqs
, Redis-quartz
поддерживают эту функцию. Но я не уверен, какой из них лучше для Springboot.
ФАКТОРЫ ДЛЯ РАССМОТРЕНИЯ:
Ниже приведены материалы, которые необходимо учитывать при выборе правильных инструментов:
Распределенная среда
Консистенция
Отказоустойчивость
Простота настройки
Асинхронная обработка
ВОПРОС
По сути, я ищу что-то похожее на эквивалентную реализацию Resqueue и sidekiq ruby в Java (springBoot). Кто-нибудь достиг такой же функциональности в своем приложении? Если это так, что будет лучшим выбором / способом, обеспеченным за и против. Предложения приветствуются.