подойдет именно из-за отсутствия контроля над выполнением задачи, верно?
то есть приложение-бэк не понимает, на каком этапе находится расчёт (да и вообще ничего толком не знает о расчёте).
Ну вот на коленке костылик. Придумываем id'шник uuidшку, или берём из сиквенса, сохраняем её в базу, создаём бекграунд тредик которому передаём эту айдишку и параметры таска, бекграунд таск выполняет subprocess.run([sys.executable, 'долгий_скрипт.py']), и потом кладёт результат таски и её новый статус в базу
Ну тут зависит от приложения. Если оно у тебя например на asyncio, ты можешь хранить список future и проверять, завершились они или нет.
Есть IPC т.е средства взаимодействия между процессами
мы всё же предполагаем что в общем случае у вебаппы более чем один процесс, поэтому если какое-то состояние должно быть зашарено на всё приложение, то оно идёт в бд
Обсуждают сегодня