Как работать с RabbitMQ при наличии нескольких асинхронных операций? - PullRequest
0 голосов
/ 10 октября 2018

Возможно, название моего вопроса не самое лучшее, поэтому я объясню свой сценарий и чего я хочу достичь.В настоящее время я работаю над проектом, в котором мне нужно проанализировать документы, сегментировать их и выполнить несколько операций в сегментах (предложениях), например перевести их, посчитать количество слов и определить язык, все эти операции выполняютсяАсинхронные вызовы к различным службам в сети, и они работают бесперебойно, в деталях я получаю документ через REST API, анализирую его и помещаю весь контент в очередь RabbitMQ, где каждый сегмент является заданиемсделано, моя проблема здесь, когда у меня есть более 1 документа.Например, клиент входит в систему и загружает документ, если другой клиент выполняет ту же операцию, он должен ждать выполнения заданий, относящихся к первому документу, чтобы он начал.

Следовательно,у меня вопрос, могу ли я как-то обрабатывать эти данные одновременно с использованием RabbitMQ?

Я использую NodeJS и обычный AMQPLib для этой задачи, и я не могу обрабатывать данные в пакетном режиме из-за утечек памяти, потому чтоЯ взаимодействую с MongoDB и несколькими другими службами, это должно быть 1 к 1, и когда весь конвейер применяется в одном задании, затем выводим его из очереди.

...