Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
La giunta regionale dell’#EmiliaRomagna con presidente #Bonaccini e vicepresidente #Schlein ha restituito fra il 2021 e il 2022 al ministero delle Infrastrutture 55,2 milioni di euro di un finanziamento di 71,9 milioni di euro ricevuto dallo Stato per la manutenzione…
La giunta regionale dell’#EmiliaRomagna con presidente #Bonaccini e vicepresidente #Schlein ha restituito fra il 2021 e il 2022 al ministero delle Infrastrutture 55,2 milioni di euro di un finanziamento di 71,9 milioni di euro ricevuto dallo Stato per la manutenzione e la messa in sicurezza dei corsi di acqua della Regione. (Open)
@UltimoraPolitics
#Italia#EmiliaRomagna#Parma
Fallite le trattative col centrosinistra e con Pizzarotti: a Parma il #M5S|NI non parteciperà alle amministrative.
@UltimoraPolitics
#Italia#EmiliaRomagna#Bologna
In una conferenza stampa a Bologna, #PaP|Sinistra radicale ha denunciato la aggressione e il tentato stupro di una militante di PaP da parte di un gruppo di persone ucraine neofasciste, con chiara simbologia banderista.
@UltimoraPolitics
#Italia#EmiliaRomagna#ReggioEmilia
Le delegazioni di #IV|RE e #PiùE|RE sono state aggredite a Reggio Emilia durante le celebrazioni del 25 aprile.
@UltimoraPolitics
#Italia#Regionali#EmiliaRomagna
Il 17 e il 18 novembre si voterà per l'elezione del Presidente della Regione Emilia-Romagna e il contestuale rinnovo dei 50 consiglieri regionali (contemporaneamente con l'Umbria) eletti all'interno dei 9 collegi regionali corrispondenti alle 9 province.
Si voterà dalle 7 alle 23 di domenica 17 e dalle 7 alle 15 di lunedì 18.
Il Presidente è eletto in un unico turno: basta la maggioranza relativa dei voti per poter essere eletti e gli sarà assicurata una maggioranza di almeno 27 seggi. Lo sbarramento è fissato al 3% per le liste coalizzate e al 5% per le liste non coalizzate.
La Regione è sempre stata la roccaforte prima della sinistra e oggi del centrosinistra e secondo i sondaggi dovrebbero vedere confermata l'amministrazione uscente.
La Presidente in carica è Irene #Priolo (#PD|S&D), facente le veci del Presidente eletto Stefano #Bonaccini (PD) a gennaio 2020 con il 51% dei voti che si è dimesso per entrare in carica come europarlamentare.
@OsservatorioItaliano
#Italia#Regionali#EmiliaRomagna
Il Sindaco di #Ravenna Michele #DePascale (#PD|S&D) è il nuovo Presidente della Regione Emilia-Romagna.
Succede all'europarlamentare e Presidente del Partito Democratico Stefano #Bonaccini.
@OsservatorioItaliano
Autonomia, via libera alla richiesta del referendum. #Campania, #Toscana, #Sardegna, #Puglia ed #EmiliaRomagna hanno approvato in consiglio regionale gli stessi provvedimenti: il quesito che intende abolire interamente la norma e l'altro per la modifica parziale. I delegati delle regioni presenteranno i quesiti alla Corte Costituzionale. (Ansa)
@UltimoraPolitics
Le regioni #EmiliaRomagna e #Puglia interrompono tutti i rapporti con #Israele. Il presidente della Puglia #Emiliano: "Genocidio di inermi palestinesi in atto da parte del governo #Netanyahu"
@UltimoraPolitics
Il PNRR non può essere utilizzato per aiutare l'Emilia Romagna.
Cerchiamo di quantificare il disastro.
Danni per almeno 5/6 miliardi di euro: circa 15 milioni di piante da estirpare (per realizzare un ettaro di frutteto ci possono volere 50 mila euro); mille aziende in crisi e quattrocento allevamenti alluvionati; cinquantamila posti di lavoro a rischio.
Ci vorranno cinque anni per raccogliere qualche frutto da un albero nelle zone colpite.
Saranno 400 milioni i kg in meno di grano nel mercato nazionale e mancherà il 20% della frutta. L'effetto: saliranno i prezzi di questi beni essenziali e a pagare saranno i più deboli.
Il PNRR però si potrà utilizzare per investire in armi, anche grazie al voto favorevole di quasi tutti i nostri partiti politici.
Giudicate voi.
La mia al TG Plus di Cusano Italia TV
#alluvioneemiliaromagna#alluvione#emiliaromagna#politica#italia#televisione#informazione#giornalismo#PNRR#UnioneEuropea
https://x.com/SavinoBalzano/status/1836837611845074949?t=zUTmU8s5R3-XF9mHDYQtMw&s=19
La drammatica #Alluvione viene ovviamente imputata agli epocali cambiamenti climatici del nostro tempo. Credo sia una bella paraculata, utile a nascondere l'assoluta incapacità di certi amministratori, a partire da #Bonaccini, che non hanno fatto assolutamente nulla per prevenire questo disastro. Anzi.
Attendo che compaiano in tv con la solita felpina della protezione civile a fare gli eroi.
La verità è che episodi come questi, nella loro tragicità, vengono strumentalizzati per spingere a tavoletta la folle ideologia #green, da scaricare ovviamente sulle spalle dei poracci: credo che sul punto l'ex Presidente dell'#EmiliaRomagna saprà fornire il suo dotto contributo dalle democraticissime istituzioni dell'#UE.
La mia a #5Notizie, #RadioCusanoCampus.
#alluvioneromagna#alluvioneemiliaromagna
https://x.com/SavinoBalzano/status/1858796809008660926?t=zoW1JPySaEFK3hgRxcxNgg&s=19
Solo due numeri sulle elezioni regionali perché quello che leggo ha del surreale: va bene tutto, ma il metro deve essere lo stesso.
In #Umbria i votanti passano da 455.000 a 366.000 e, dunque, l'affluenza cala dal 65% al 52%. Nel 2019 a #Tesei servirono 255.000 voti per vincere. Ieri a #Proietti ne sono bastati 182.000. Lo sconfitto del 2019 (Bianconi) di voti ne prese 166.000. Questo per dire che non c'è stato alcun plebiscito e la spazzatura che si legge in giro (tipo «non ci hanno visto arrivare») è semplicemente comica. Gli umbri hanno punito l'amministrazione uscente che evidentemente non ha convinto, ma il loro disappunto lo hanno espresso restando a casa. Questi sono i numeri, nessun «avanti popolo, alla riscossa!».
In #EmiliaRomagna, i votanti passano da 2.400.000 a 1.600.000: un vero e proprio bagno di sangue. L'affluenza passa dal 68% al 46%: un salasso allucinante. Qui il vincitore #DePascale ha preso 922.000 voti: non solo sono meno di quanti ne prese #Bonaccini, ma sono persino meno di quanti ne prese Borgonzoni (1.014.000) che nel 2020 fu sconfitta. Che vuol dire? Semplicissimo: l'amministrazione uscente è stata massacrata dall'#astensionismo, letteralmente fustigata. Anche qui, dunque, rispetto assoluto per il risultato e augurio di buon lavoro al Presidente, ma nessuna «bandiera rossa trionferà!». Cerchiamo di essere seri, un minimo.
L'astensione per me è da sciocchi (anche perché rattrista, ma conta 0 da tutti i punti di vista), ma abbiamo due sole possibililità (sempre se vogliamo essere seri): o vale niente, sempre, o la si considera, sempre.