Пользовательский вызов http /api -> получить результат1.
Мой сервер весенней загрузки:
/api : выполнить 3 задачу
- сделать db1 -> получить результат1 (этот результат — то, что хочет пользователь)
2.1. делаю mq2
2.2. выполните http2 (результат здесь игнорируется, просто нужно убедиться, что он получил код состояния HTTP 200)
Поскольку это ограничение требований, транзакция здесь бесполезна, Я подумываю о том, чтобы объединить задачи mq2 и http2 в 2 задания, и пусть менеджер задач сделает это за меня.
Существует ли какое-либо решение?
Я думаю, что этот менеджер задач должен:
- обеспечивать выполнение всех заданий хотя бы один раз.
- восстановление после сбоя (например, сервер /service down): он может продолжать повторять попытки и может повторно запускать все незавершенные задания, когда сервер снова подключается к сети.
- простота настройки/обслуживания: нет необходимости в XML/нет специального языка, можно использовать непосредственно Java-код.
идеальный код может выглядеть так:
Код: Выделить всё
//config
Job http2Job = new Job(para);
Job mq2Job = new Job(para);
JobGroup apiJob = new JobGroup(http2Job, mq2Job);
//usage
transaction.start();
do db1
jobManager.add(apiJob)
transaction.commit();
4.нет необходимости в дополнительном сервере и использование MySQL для выполнения этой задачи.
5.Поддержка Spring Bean
Подробнее здесь: https://stackoverflow.com/questions/786 ... least-once
Мобильная версия