У меня есть приложение фляги, которое выполняет тяжелые запросы в фоновом режиме, что вызывает медленное время загрузки (5-15 секунд) для запросов веб-приложения.
Чтобы решить эту проблему, я добавил Celery в качестве брокера и Redis в качестве Backend.Моя цель состоит в том, чтобы предварительно выполнять каждый запрос каждые 5 минут, чтобы пользователю не приходилось ждать 5-15 секунд при каждой загрузке страницы.
Я успешно создал расписание celerybeat, могусм. в журнале, что он выполняет запросы каждую минуту (для целей тестирования, а не 5 минут).
celery.conf.update(
CELERYBEAT_SCHEDULE = {
'update-every-minute': {
'task': 'task.celery',
'schedule': timedelta(seconds=60),
'args': ()
},
},
)
Проблема в том, как мне обновить данные по маршруту колбы?
Если я помещу «задачу» в маршрут, например, так:
from app.tasks import tasks
@app.route('/')
def home():
result = task.apply_async()
return jsonify(result.get())
Она по-прежнему перезагружает страницу при каждом запросе get ...
Это простой способ сделатьэта работа?:)