Я пытаюсь создать систему, в которой люди могут отправлять файлы на подпись. Каждое представление может иметь несколько файлов, и результаты будут отправлены обратно пользователю, если после того, как весь файл в каждом представлении будет готов.
В настоящее время у меня есть 6 ящиков для подписи, которые подписывают один файл за раз. Поэтому для каждой отправки мне нужно разделить все файлы и распределить их нагрузку между 6 ящиками для подписи, а после этого мне нужно получить результаты и отслеживать, все ли файлы в этой отправке были завершены.
Если возможно, я также хочу ограничить максимальное количество полей для подписи, которые может использовать каждая отправка, чтобы большая отправка не истощала другие задания.
Моя текущая настройка заключается в том, что у меня есть очередь отправки, и несколько потребителей очереди отправки будут получать сообщения из нее один за другим, разбивать отправку на отдельные файлы и отправлять их в очередь файлов. И 6 ящиков для подписи будут 6 потребителями очереди файлов. У меня возникают проблемы с записью результатов обратно потребителю отправки, который отслеживает, все ли файлы готовы для этой отправки, и я не могу контролировать максимальное количество полей для подписи, используемых для каждого задания.
Я просмотрел настройку RPC для rabbitmq, которая позволяет записывать результаты обратно. Проблема в том, что вызов rpc блокируется для каждого файла, и я хочу, чтобы несколько файлов для одной и той же отправки могли подписываться параллельно. Поэтому мне нужны некоторые предложения по архитектуре rabbitmq и потоку сообщений для этого типа сценария.