Очередь задач в RabbitMQ
Я пытаюсь настроить постановку задач в очередь с rabbitMQ в сочетании с Node.js & React.js. Мне трудно понять, как на самом деле работает управление задачами, и я не могу найти хороший пример в Интернете.
Я пытаюсь отправить задачу (например, создать много изображений по клику пользователя) и отправить ее в очередь, чтобы она не блокировала навигацию пользователя. Может кто-нибудь попытаться провести меня через этот процесс?
У меня запущен и работает мой сервер rabbitMQ, и я могу отправлять / получать сообщения. У меня просто проблемы с преобразованием этого в инструмент управления задачами (например, отправка / получение данных, связанных с задачей). Любая помощь / примеры приветствуются здесь!
1 ответ
Вот пример того, как The Grid является "Обработка ресурсоемких задач с рабочими очередями (очереди задач) в RabbitMQ"; где вся вычислительная работа в Grid (такая как анализ изображений и обработка изображений) выгружается как задачи / задания в RabbitMQ. Вместо того, чтобы веб-сервер ожидал результата немедленно, он может продолжать обрабатывать другие запросы. Очереди задач RabbitMQ также используются для распределения трудоемких задач между несколькими работниками, и основная идея использования очередей задач (для них) состоит в том, чтобы избежать немедленного выполнения ресурсоемкой задачи и необходимости ждать ее завершения. Задача также может быть запланирована на более позднее время.
Другой пример - архитектура, стоящая за CloudAMQP. Он построен на нескольких небольших микросервисах, где RabbitMQ используется в качестве системы обмена сообщениями. RabbitMQ отвечает за распространение событий / задач среди служб, которые их прослушивают, - если у вас есть возможность отправить сообщение, не зная, способна ли другая служба обработать его немедленно или нет. Задачи могут просто ждать в очереди, пока ответственная служба не будет готова.