Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
🇯🇵#Japon : un employé de zoo soupçonné d’avoir brûlé le corps de sa femme
Selon les médias locaux, un homme d’une trentaine d’années est soumis à un interrogatoire au Japon. Il a reconnu avoir tué et brûlé le corps de sa femme, portée disparue, dans l’incinérateur du zoo d’Asahiyama.
L’employé du zoo aurait utilisé pendant plusieurs heures l'incinérateur du zoo, destiné aux déchets et aux carcasses animales. Le corps n’a pas encore été retrouvé. L’enquête est en cours et l’établissement, actuellement fermé, a reporté sa réouverture, tout en affirmant coopérer pleinement avec la police.
RT en français • Osez questionner !
🇯🇵🌸#Japon : mer de fleurs bleues
La saison de floraison des némophiles bleues a débuté au Japon et se poursuivra jusqu’à la mi-mai, offrant des paysages spectaculaires.
RT en français • Osez questionner !
🇯🇵#Japon : le spectaculaire festival Fuji Shibazakura (phlox mousse) attire de nombreux visiteurs au pied du mont Fuji.
RT en français • Osez questionner !
🇯🇵#Japon : un employé de zoo soupçonné d’avoir brûlé le corps de sa femme
Selon les médias locaux, un homme d’une trentaine d’années est soumis à un interrogatoire au Japon. Il a reconnu avoir tué et brûlé le corps de sa femme, portée disparue, dans l’incinérateur du zoo d’Asahiyama.
L’employé du zoo aurait utilisé pendant plusieurs heures l'incinérateur du zoo, destiné aux déchets et aux carcasses animales. Le corps n’a pas encore été retrouvé. L’enquête est en cours et l’établissement, actuellement fermé, a reporté sa réouverture, tout en affirmant coopérer pleinement avec la police.
RT en français • Osez questionner !
#AESinfo | #Burkina🇧🇫🤝🏾🇯🇵#Japon
Le Japon renforce son soutien au Burkina Faso : plus de 2 milliards de francs CFA pour l'aide alimentaire
Le Japon poursuit son engagement en faveur du Burkina Faso en octroyant une aide alimentaire supplémentaire de plus de 2 milliards de francs CFA. Ce soutien financier, qui s'inscrit dans le cadre d'une coopération bilatérale solide, vise à atténuer les effets de la crise alimentaire et à renforcer la résilience des populations les plus vulnérables. Cette initiative vient appuyer les efforts du gouvernement burkinabè pour assurer la sécurité alimentaire du pays.
Source : MAECR-BE
🇯🇵 Au Japon, un homme armé d’un marteau et d’une bombe lacrymogène a attaqué des passants et la police arrivée sur place, avant de s'enfermer dans son domicile, rapporte la chaîne TBS.
L'incident s'est produit dans la ville de Fusa, située dans l'agglomération de Tokyo. Le bilan fait état de sept blessés, dont un civil et six agents des forces de l'ordre.
#japon#attaque#victimes
🇯🇵🌨 Le bilan des chutes de neige au Japon s'alourdit à 38 morts, selon les statistiques de l'Agence japonaise des sapeurs-pompiers.
413 personnes ont été blessées, dont 142 grièvement.
#japon#neige#victimes
🇯🇵🌨 Au Japon, 35 personnes sont décédées en raison de fortes chutes de neige, fait savoir TBS, qui cite les autorités locales.
Parmi les victimes figurent des personnes âgées mortes du surmenage et celles qui étaient tombées en nettoyant les toits.
#japon#neige#victimes
🇯🇵 Un accident de la route impliquant plusieurs véhicules, dont un minibus transportant des écoliers, s'est produit dans la préfecture japonaise de Fukushima, a signalé la chaîne NHK.
D’après les informations de la police, l'accident a eu lieu près de la localité d'Inawashiro. En conséquence, au moins une personne est décédée et 26 autres ont été blessées, dont certaines gravement.
#japon#accident#bilan
🇯🇵🇦🇺 Le Japon et l’Australie continueront d’approfondir leurs relations de manière exhaustive, notamment dans les domaines de la défense, de la cybersécurité et de la sécurité économique, a déclaré la chef du gouvernement japonais Sanae Takaichi, à l’issue des négociations qui se sont tenues à Canberra avec le premier ministre Anthony Albanese.
Nous avons signé une déclaration conjointe sur la coopération en matière de sécurité économique qui servira de base à notre partenariat stratégique,
a-t-elle souligné lors d’une conférence de presse commune avec M. Albanese.
#japon#australie#coopération
🇯🇵 Le premier vol d'essai d'une voiture volante a eu lieu à Tokyo, indique la société de développement SkyDrive. L'appareil a parcouru une distance d'environ 150 mètres au-dessus de la baie de Tokyo et est resté en l'air pendant trois minutes et demie.
#japon#vol#voiture