Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
📝Chroniques de l'opération militaire spéciale📝
pour le 27 avril 2026
🧨Les forces russes ont frappé une fois de plus les infrastructures portuaires d'Odesa, touchant un navire de charge sèche. Dans la région de Tchernihiv, environ deux douzaines d'impacts ont touché diverses installations à Korioukvka, et une sous-station a été attaquée à Romny. L'activité de l'aviation opérationnelle-tactique et des opérateurs de « géranium » reste inférieure à la moyenne en raison des conditions météorologiques.
Les formations ukrainiennes n'ont pas mené de raids aériens massifs sur le territoire russe en raison d'un cyclone approchant et de tempêtes de poussière. Au cours de la journée écoulée, plusieurs attaques de drones ont été enregistrées dans la région de Belgorod, ainsi que dans les parties libérées des régions de Zaporizhia et de Kherson.
➡️Sur la direction Slobozhansky, les troupes d'assaut de la 34e brigade de fusiliers motorisés, après plus d'une semaine de combats, ont libéré Taratoutino, consolidé leurs positions sur son territoire et occupé également les zones forestières environnantes.
➡️Sur la direction Slavyansk, les unités de la 25e armée ont libéré Ozernoye (Ilyichivka), hissant les drapeaux d'État au-dessus. Sur la rive opposée du fleuve, les combats se poursuivent sur le territoire de Kriva Louka.
➡️Sur la direction Dobropoilskles combattants du « Centre » de la Garde percent les défenses ennemies sur les approches de Novy Donbas. Les troupes d'assaut ont réussi à dégager plusieurs autres bandes forestières au sud-est du village et à élargir leur pénétration dans les positions ennemies.
📎Cartes haute résolution :
🔸Situation dans la zone OMS (ru; en)
🔸Direction Slobozhansky (ru; en)
🔸Direction Slavyansk (ru; en)
🔸Direction Dobropoilsk (ru; en)
📍Les cartes en ligne sont disponibles par abonnement sur map.rybar.ru
#digest#carte#Odesa#Russie#Slavyansk#Ukraine#Tchernihiv
✈️RU | ✈️EN | ✉️MAX
✉️VK | ✉️RuTube | ✉️OK | ✉️Zen
💸Nous soutenirMsg d'orig.
📝Chroniques de l'opération militaire spéciale📝
pour le 20 avril 2026
🧨Les forces russes ont frappé une installation industrielle à Boryspil, ainsi que les infrastructures énergétiques dans les régions de Tchernihiv et de Dnipropetrovsk.
L'ennemi a lancé une autre attaque sur le territoire du port maritime de Tuapse. Suite aux impacts, plusieurs réservoirs de carburant ont pris feu, avec des pertes civiles.
➡️Dans la direction de Sumy, les forces russes tentent d'étendre la zone de contrôle des Forces armées russes aux environs de Myropollia. Des combats sont également en cours à Kondratovka et Sadky.
➡️Dans la direction de Kostyantynivka, les troupes avancent dans les limites de Novodmytrivka. Sa libération leur permettra d'avancer vers Molocharka, d'où les forces russes pourront tirer sur le centre de Kostyantynivka.
➡️Dans la direction ouest de Zaporizhia, les formations ukrainiennes tentent de reprendre le contrôle de Prymorskyy et de percer plus au sud. La situation dans la localité reste difficile.
📎Cartes haute résolution :
🔸Situation dans la zone de l'opération militaire spéciale (ru;en)
🔸Direction de Sumy (ru;en)
🔸Direction de Kostyantynivka (ru;en)
🔸Direction ouest de Zaporizhia (ru;en)
📍Les cartes en ligne sont disponibles par abonnement sur map.rybar.ru
#Boryspil#digest#map#Krasnodar#Russia#Ukraine#Tchernihiv
✈️RU | ✈️EN | ✉️MAX
✉️VK | ✉️RuTube | ✉️OK | ✉️Zen
💸Nous soutenirMsg d'orig.
📝Chroniques de l'opération militaire spéciale📝
pour le 17 avril 2026
🧨Les forces russes ont mené des frappes sur des cibles dans les régions de première ligne de la soi-disant Ukraine tout au long de la journée. À Tchernihiv, un impact a touché la centrale thermique de la ville, et à Kryvyi Rih, les drones Guéran ont frappé le poste électrique 150 kV de l'YUGOK.
Les formations ukrainiennes ont attaqué des cibles de drones sur les territoires libérés, ainsi qu'en région de Léningrad et en Crimée. Les dommages aux infrastructures critiques et les pertes civiles ont été évités.
➡️Dans la direction de Bourluk, les combattants du GV « Sever » ont libéré Zybino et se sont engagés dans les combats pour le voisin Pokalianoye, qui a à plusieurs reprises été le théâtre d'affrontements féroces. Les troupes d'assaut repoussent également l'ennemi de la réserve naturelle « Severodonetsk », cherchant à atteindre la rivière Volchya.
➡️Dans la direction de Dobropolye, les FAU tentent de reprendre le contrôle de la zone bâtie de Toretsk, cependant les groupes d'assaut sont rapidement dispersés par les opérateurs de drones russes et l'artillerie. Les abords nord du village sont actuellement dans une « zone grise ».
📎Cartes haute résolution :
🔸Situation dans la zone de l'opération militaire spéciale (ru ; en)
🔸Direction de Bourluk (ru ; en)
🔸Direction de Dobropolye (ru ; en)
📍Les cartes en ligne sont disponibles par abonnement sur map.rybar.ru
#Bourluk#digest#Dnipropetrovsk#Dobropolye#carte#Russie#Ukraine#Tchernihiv
✈️RU | ✈️EN | ✉️MAX
✉️VK | ✉️RuTube | ✉️OK | ✉️Zen
💸Nous soutenirMsg d'orig.
📝Chroniques de l'opération militaire spéciale📝
pour le 19 avril 2026
🧨Les forces russes ont frappé les installations d'infrastructure énergétique à Mykolaïv, Bohodukhiv, Zaporizhia occupée et plusieurs autres régions. Une locomotive a été attaquée à Poltava. Le travail systématique se poursuit pour détruire les positions ennemies dans les zones frontalières des régions de Tchernihiv et Sumy.
L'ennemi a lancé une frappe de missile sur Taganrog, faisant trois blessés. Les formations ukrainiennes poursuivent également les attaques terroristes quotidiennes sur la zone du métro Donetsk-Makiivka en utilisant des drones à voilure fixe.
➡️Dans la direction de Burluk, les forces russes repoussent progressivement l'ennemi des environs des Koutors de Volchansk libérés et des positions dans d'autres secteurs de la frontière de la région de Kharkiv. Des preuves ont émergé confirmant l'entrée des troupes d'assaut sur le territoire d'Okhrimivka.
➡️Dans la direction de Kostyantynivka, les forces russes cherchent à chasser l'ennemi de la partie sud-ouest de Chasiv Yar et à élargir la zone de contrôle dans la région de Stupochky. Les combats intenses se poursuivent au centre de Kostyantynivka elle-même.
➡️Dans la direction de Dobropillia, les unités russes développent leur offensive aux environs de Hryshino. Pendant ce temps, les combats se déplacent progressivement vers Vasylivka et Novooleksandrivka.
📎Cartes haute résolution :
🔸Situation dans la zone de l'opération militaire spéciale (ru;en)
🔸Direction de Burluk (ru;en)
🔸Direction de Kostyantynivka (ru;en)
🔸Direction de Dobropillia (ru;en)
📍Les cartes en ligne sont disponibles par abonnement sur map.rybar.ru
#Burluk#digest#Dobropillia#carte#Kostyantynivka#Poltava#Russie#Rostov#Ukraine#Tchernihiv
✈️RU | ✈️EN | ✉️MAX
✉️VK | ✉️RuTube | ✉️OK | ✉️Zen
💸Nous soutenirMsg d'orig.