Как заставить задачи сельдерея выполняться в одном хосте? - PullRequest
0 голосов
/ 16 ноября 2018

Я работаю над реализацией архитектуры на основе Flask + Celery для обработки изображений.См. Изображение ниже:

enter image description here

Клиент Celery (производитель) - это приложение-колба, которое будет получать изображения для обработки и помещать их в RabbitMQ для использования.работниками сельдерея.

Система может автоматически запускать и останавливать новые рабочие узлы в зависимости от спроса.Каждый рабочий узел сельдерея будет работать с несколькими потоками (параметр --concurrency).

Я думаю иметь один поток для использования из очереди сельдерея по умолчанию.Тогда любой узел может обрабатывать изображения.

Как только данный узел получит / использует изображение из очереди, изображение будет помещено локально в базу данных в памяти.

Как яЯ имею дело с изображениями, я хочу, чтобы изображения не проходили между различными узлами сети.

Обработка изображений будет состоять из множества задач и будет выполняться с использованием цепочки ().

Итак, когда у меня есть заданное изображение локально, как я могу заставить все другие подзадачи (цепочки) всегда выполняться на одном хосте?

Я знаю, что могу создавать определенные очереди и назначать эти очереди рабочимв каждом узле, но я не знаю, является ли это лучшим / единственным решением, и как сделать так, чтобы оно было динамичным.

С наилучшими пожеланиями.Клейсон Риос.

...