Подтвердить что ты не робот

Как я могу совместить колбу и название?

Как я могу объединить веб-приложение Flask и микросервисы Nameko?

Позвольте мне дать вам некоторый контекст. У меня есть флеш-приложение (http://flask.pocoo.org). Это приложение может выполнять длительные (5-10 минут) задачи. Я хочу иметь возможность писать и прикреплять дополнительные модули к этому приложению, пока он все еще работает. Это нормально, если я останавливаю приложение во время разработки, но я не могу остановить его в процессе производства.

У меня нет опыта работы с Nameko (https://nameko.readthedocs.org), это лучшее решение моей проблемы? И если это так - могу ли я использовать приложение Flask и микросервисы Nameko?

4b9b3361

Ответ 1

Участник здесь nameko. Я согласен с nathancahill, что сельдерей - хороший выбор для этого.

Вы можете использовать nameko и Flask вместе. Здесь приведен краткий пример: https://gist.github.com/mattbennett/4250ce5d56b36a99bc39

В этой конфигурации, однако, вы покрываете ту же землю, на которой был создан сельдерей, а именно на обработку длительных задач вне цикла запроса-ответа. Откровенно, пример в gist будет намного лучше реализован исключительно в качестве приложения nameko (с использованием встроенной точки входа http), потому что он не использует какие-либо более продвинутые функции веб-фреймворка, которые Flask дает вам.

Если вы хотите написать микросервисы, даже те, которые преимущественно основаны на HTTP, nameko предоставляет некоторые полезные инструменты для этого. Если вы просто хотите добавить асинхронную обработку в существующий webapp, выбор сельдерея будет стандартным выбором.

Ответ 2

Слышали ли вы о Pinball? Это Pinterest собственный менеджер рабочего процесса.

Он позволяет вам планировать и управлять масштабированием заданий на нескольких компьютерах, а также в Python.

Они рекламируют следующие принципы проектирования:

  • Простой: основанный на легкодоступных абстракциях
  • Расширяемый: компонентный подход
  • Transparent: состояние, сохраненное в читаемом формате
  • Надежность: компоненты без учета состояния
  • Масштабируемость: масштабирование по горизонтали
  • Удобный для администратора: может быть обновлен без прерывания рабочих процессов.
  • Feature-rich: авто-повторы, сообщения для каждого задания, чередования времени выполнения, приоритеты, политики перерасхода и т.д.