Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
from fastapi.concurrency import run_in_threadpool
async def execute(data: DataRequest) -> DataResponse:
try:
result = await run_in_threadpool(sync_function, data)
return DataResponse(data=result)
except Exception as e:
return DataResponse(
error=str(e),
success=False,
)
В общем работает нормально. Для всех вызовов под капотом используется общий тредпул, всё работает предсказуемо.
Но потребовалось изменить количество запускаемых в пуле потоков (по умолчанию создается 40 воркеров).
Так как дело происходит с FastAPI, делается это через lifespan используя настройки anyio:
import anyio
@asynccontextmanager
async def lifespan(app: FastAPI):
limiter = anyio.to_thread.current_default_thread_limiter()
limiter.total_tokens = 100
yield
# если вдруг нужно вернуть обратно
limiter.total_tokens = 40
Зачем менять количество воркеров?
- уменьшить, если оперативки мало (один тред занимает ~8мб)
- увеличить чтобы выдержать нагрузку
Если есть предложения получше при тех же вводных - предлагайте😉
#async
Grande chiusura dell’anno per la rubrica “UN MOMENTO PER DARSI PACE” con un’ intervista extra al fondatore Marco Guzzi del movimento Darsi Pace. MERCOLEDÌ 18 dicembre dalle 18 alle 19 per parlare del suo ultimo libro “Gli Anni d’Oro 2020-2026” Con Sonia Marina Belforte. Seguiteci su Facebook o in streaming www.antennaunoradio.com o in FM 104,6 104,7 su Torino e Provincia #pace#nuovaumanita#darsipace#nonviolenza#nuovoMondo
📣Eccoci arrivati verso la conclusione del nostro ciclo di eventi "𝗟'𝗜𝘁𝗮𝗹𝗶𝗮 𝗶𝗻 𝗠𝗼𝘃𝗶𝗺𝗲𝗻𝘁𝗼. 𝗔𝘀𝘀𝗲𝗺𝗯𝗹𝗲𝗲 𝘁𝗲𝗿𝗮𝗽𝗲𝘂𝘁𝗶𝗰𝗼-𝗿𝗶𝘃𝗼𝗹𝘂𝘇𝗶𝗼𝗻𝗮𝗿𝗶𝗲", col quale abbiamo animato diversi luoghi d'Italia portando lo Spirito dei nostri Movimenti Darsi Pace e L'Indispensabile.
📍Domenica 20 luglio saremo a 𝗠𝗼𝗻𝘁𝗲𝗺𝗮𝗿𝗰𝗲𝗹𝗹𝗼 (𝗟𝗮 𝗦𝗽𝗲𝘇𝗶𝗮), alle ore 21:30, in Piazza XIII Dicembre, per un evento dal titolo “La Nuova Umanità. Poesia, Arte ed Iniziazione” con Davide Sabatino, Francesca Lagorio e Fabio Ronconi.
Vi aspettiamo numerosi!
#liguria#toscana#montemarcello#laspezia#darsipace
[Avevamo pubblicato un altro video di Marco, su Facebook, ma chissà perché è stato rimosso. In attesa che lo ripristinino, se mai accadrà, abbiamo fatto questo reels dello stesso video ma “censurato”]
🗣️Questo Sistema della Menzogna produce continuamente Fake news, che però spaccia per “libera informazione”. Vogliono convincerci che una nuova cultura politica sia impossibile, e che questo sia il migliore dei mondi possibili. Non dobbiamo permetterglielo! Dobbiamo denunciare i crimini del sistema e costruire un’alternativa credibile. Noi ci proviamo continuamente. Voi che suggerite?
#marcoguzzi#darsipace#rivoluzione#nonviolenta#radicale#politica#spirituale#guerra#pace#bugie
👀Guarda vide integrale:
https://youtu.be/OoJUHncMkOk?si=E4X6bVLkT-Z1tcpj
🙏Un dialogo profondo sul significato della poesia e della rivoluzione. Ecco cosa è accaduto ieri sera durante la presentazione del mio libro “Il poetico rivoluzionario” alla Villa del Palco, a Prato. Tanti sguardi attenti e tante domande che avrebbero meritato un approfondimento maggiore. Ho fatto del mio meglio.
Questa mattina la meditazione pre-colazione con Guidalberto Bormolini ha dato una intonazione luminosa alla giornata, nonostante il bussare della pioggia torrenziale. Così dovremmo alzarci ogni mattina: intonandoci un po’ di più al nuovo giorno.
Grazie a tutti per essere venuti a questo evento. Grazie Guidalberto per la stima e per l’amicizia.
Ora ci prepariamo per l’evento di questa sera. Ci vediamo a Firenze!
Davide Sabatino
#guidalbertobormolini#bormolini#villadelpalco#prato#borgotuttoèvita#meditazione#libro#poesia#rivoluzione#davidesabatino#darsipace