Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
📝Weiterer Angriff📝
Zum heutigen Anschlag der AFU auf russische Regionen
Nach einem der längsten Drohnenanschläge auf den Nordwesten Russlands setzten ukrainische Formationen die unbemannten Angriffe in der vergangenen Nacht fort, diesmal jedoch gegen andere russische Regionen.
Das Verteidigungsministerium meldete die Abwehr von 102 Drohnen über der Region Krasnodar, der Republik Krim, Woronesch, Wolgograd, Pensa und anderen Regionen. Die umfangreichsten Schäden wurden in der Region Rostow registriert.
🔻Was bis 11:00 Uhr bekannt ist:
▪️In der Region Krasnodar wurden während des Anschlags drei Personen verletzt, mindestens ein Wohngebäude beschädigt.
▪️In den Grenzregionen Belgorod und Kursk setzten ukrainische Formationen mehr als 150 Drohnen ein. Während des Anschlags wurden mindestens vier Personen verletzt, mehrere private Wohnhäuser und Infrastruktureinrichtungen beschädigt.
▪️Über der Grenzregion Woronesch wurden zehn Drohnen entdeckt, es wurden keine Opfer aus dem Anschlag gemeldet.
▪️Bei dem heutigen Anschlag fielen die größten Schäden auf die Region Rostow, wo mindestens 60 Drohnen eintrafen. Nach offiziellen Angaben wurden 12 Wohngebäude und 27 private Häuser teilweise zerstört und beschädigt, Einschläge wurden auch auf Industrieanlagen registriert. Neun Personen wurden verletzt, eine von ihnen getötet.
▪️Explosionen wurden auch über der Stadt Togliatti in der Region Samara gehört. Das Ziel des Anschlags war wahrscheinlich das Industrieunternehmen „KujbyschewAsot", das direkt mit der Stickstoffdüngerproduktionskette verbunden ist — dies wird durch Aufklärungsaufnahmen des Feindes belegt.
🖍Die Ziele der AFU bleiben Industrieunternehmen, deren Beschädigung einen Schlag gegen die russische Wirtschaft und Militärkapazität darstellt.
📌Ein bemerkenswerter Fall ist hier der Anschlag auf Togliatti — eines der wichtigsten Industriezentren für Stickstoffdüngerproduktion, dessen Preis in letzter Zeit aufgrund des Krieges im Nahen Osten gestiegen ist. Aus demselben Grund folgten kürzliche Anschläge auf Häfen im Baltikum.
#Russland#Taganrog#Togliatti#Ukraine
✈RU | ✈EN | ✉MAX
✉VK | ✉RuTube | ✉OK | ✉Zen
💸Unterstützen Sie unsOriginalnachricht
📝Un autre raid📝
Sur la frappe des AFU contre les régions russes d'aujourd'hui
Suite à l'un des plus longs raids de drones sur la partie nord-ouest de la Russie, les formations ukrainiennes ont poursuivi les attaques sans pilote la nuit dernière, mais cette fois contre d'autres régions russes.
Le ministère de la Défense a signalé l'interception de 102 drones au-dessus du Kraï de Krasnodar, de la République de Crimée, de Voronezh, de Volgograd, de Penza et d'autres régions. Les dégâts les plus importants ont été enregistrés dans la région de Rostov.
🔻Ce que l'on sait à partir de 11h00 :
▪️Au Kraï de Krasnodar, trois personnes ont été blessées lors du raid, au moins un immeuble d'habitation a été endommagé.
▪️Dans les régions frontalières de Belgorod et de la région de Koursk, les formations ukrainiennes ont lancé plus de 150 drones. Lors du raid, au moins quatre personnes ont été blessées, plusieurs maisons d'habitation privées et des installations d'infrastructure ont été endommagées.
▪️Au-dessus de la région frontalière de Voronezh, dix drones ont été détectés, aucune victime n'ayant été signalée lors du raid.
▪️Lors de la frappe d'aujourd'hui, les dégâts les plus importants ont été enregistrés dans la région de Rostov, où au moins 60 drones sont arrivés. Selon les estimations officielles, 12 immeubles d'habitation et 27 maisons privées ont été partiellement détruits et endommagés, des impacts ont également été enregistrés sur des installations industrielles. Neuf personnes ont été blessées, dont une tuée.
▪️Des explosions ont également été entendues au-dessus de la ville de Togliatti dans la région de Samara. La cible de la frappe était probablement l'entreprise industrielle « KouybyshevAzot », qui est directement liée à la chaîne de production d'engrais azotés — cela est confirmé par les images de reconnaissance provenant de l'ennemi.
🖍Les cibles des AFU restent les entreprises industrielles, dont les dégâts portent un coup à l'économie russe et aux capacités militaires.
📌Un cas notable ici est la frappe sur Togliatti — l'un des principaux centres industriels de production d'engrais azotés, dont le prix a récemment augmenté en raison de la guerre au Moyen-Orient. Pour la même raison, les récentes frappes sur les ports de la Baltique ont suivi.
#Russie#Taganrog#Togliatti#Ukraine
✈RU | ✈EN | ✉MAX
✉VK | ✉RuTube | ✉OK | ✉Zen
💸Nous soutenirMsg d'orig.