Как справиться с фоновыми заданиями и есть лучшие практики и принципал - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть несколько фоновых заданий для обработки.Например, как только заказ размещен, требуются две работы, одна из которых отправляет электронное письмо с подтверждением заказа, а вторая получает предложения для заказа.Существует много таких видов обработки заданий, необходимых в фоновом режиме для выполнения заказа, и большинство из них требуют API-вызовов в другое приложение.Так что в случае сбоя связи http, функция повторения также ожидается с каждым заданием.

Мне нужно предложение, как управлять этим делом / заданиями.Например, где их сохранить, как их обработать и т. Д.

Есть два известных мне варианта.Первый вариант, который мы уже делаем, чтобы хранить их в базе данных приложения в таблице, и каждая новая запись имеет тип задания и номер заказа.И один процесс читает его, обрабатывает задания и удаляет из таблицы.

Теперь мы думаем добавить поддержку повторных попыток для того же.И обнаружил, что такую ​​обработку заданий следует выполнять с помощью очереди сообщений (Activemq).Где новое задание может быть добавлено в очередь всякий раз, когда это необходимо, поэтому его можно использовать для повторного рассмотрения, и график доставки также полезен там.Как оба варианта можно сравнить.Я использую Java, и если какой-либо Java-фреймворк там для той же цели.

...