на самом деле не имеет значения, какую платформу вы используете, но по мере роста приложения вы можете захотеть изолировать критическую логику.И по причинам, которые вы описали выше, но также и для того, чтобы быть ориентированными на будущее (вы можете перейти к новому интерфейсу в будущем без переписывания тяжелой работы).
Обычно для этого я настроил работника redisи используйте, например, flask только для запуска очереди с вызовами функций.Это также делает приложение более масштабируемым (одновременные пользователи, больше данных), так как вы можете просто запустить больше работников, слушающих вашу очередь, если это необходимо.
По сути:
from redis import Redis
from rq import Queue
from rq.job import Job
conn = Redis()
q = Queue(connection=conn)
Тогда как пример ввызов маршрутов фляги (для appBuilder, использования представлений или создания собственной библиотеки lib):
result = q.enqueue('utils.your_function_name',args=(id,))
Посмотрите здесь RQ для получения дополнительных примеров, а также того, как отслеживать состояние ваших работ и т. д.
https://python -rq.org /