на flask.
Все функции типовые. Без каких-либо сложных запросов.
но 1 функция - (обновление базы данных) занимает довольно много времени, так как подгружает большой объем информации и обрабатывает изображения.
Как можно эту 1 функцию запускать асинхронно, что бы она не останавливала работу всего остального кода.
В каком направлении стоит искать ответ?
эта функция что-то возвращает?
Ну, "останавливать работу остального кода" - это не так страшно и само по себе не повод. Приложения на фласке в норме запускаются за реверс прокси в нужном количестве экземпляров. Но вот задерживать ответ пользователю и тратить время на фоновую по сути задачу - не очень хорошо. Без срезания углов это нужно уносить в очереди и всё такое. Если функция, одна, разовая для каких-то админских действий - в принципе можно просто в отдельном процессе запустить и пусть работает. Только защиту от повторного запуска и какую-нибудь обратную связь предусмотреть.
Да, я так примерно и хочу сделать. В фоне настроить поэтапное обновление данных. Что бы не влияло на работу. Примерно уже выстроил логику. Сейчас все в коде изложить и тестировать.
Я просто про то, что всякие кролики, как выше советовали - это прикольно, конечно, но скорее всего здесь избыточно.
В любом случае несколько советов (для умных) позволит изучить разные варианты и выбрать оптимальное. Поэтому каждое мнение всегда стоит изучить.
Обсуждают сегодня