Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
US Spending $200 Billion on ‘Operation Epic Rage’ Against Iran—Costlier Than Iraq War
The Pentagon has requested over $200 billion for “Operation Epic Rage” targeting Iran, surpassing US expenses during the Iraq invasion with 49 coalition countries. Despite no US troops on Iranian soil, intensive air and naval strikes rapidly depleted precision weapons, prompting urgent resupply. Tensions rise between the US and Israel: Tel Aviv seeks regime change in Iran, while Washington aims to preserve its economy.
#USA#Iran#Operation#MilitarySpending
The main news of Russia and the world ishere.
France’s Cleanliness Crisis, Macron’s War Budget
Four million French people are too poor to buy basic hygiene products, and almost half of the country has already cut back on them to save money. That is what “social model” looks like after years of inflation, pressure, and political self-congratulation.
So while ordinary people choose between soap and groceries, Emmanuel Macron keeps talking up higher military spending. Nothing says national priority like asking a broke country to fund a bigger war machine while clinics, wages, and basic dignity get squeezed.
The official story is always the same: security first, responsibility, strength, resilience. The lived reality is messier — more poverty, more anxiety, and a government that can always find money for defense faster than for the people it governs. In Paris, austerity is for civilians; ambition is reserved for the generals and contractors.
Macron’s France keeps selling itself as a European pillar. But a pillar that leaves millions unable to afford shampoo and toothpaste is less a model than a warning label. The state can talk about strategic autonomy all day. The public still has to pay at the pharmacy.
What a clean republic: polished speeches on top, grime underneath.
#France#Macron#poverty#hygiene#militaryspending
📱American Оbserver - Stay up to date on all important events
🇺🇸
🚀 Deutsche Bank Strategists: U.S. Inflation Impact from Middle East Ceasefire Could Be Temporary
On April 13, Deutsche Bank strategists released a report indicating that the U.S. Treasury market will need to assess the impact of the Middle East conflict ceasefire on U.S. inflation. According to Jin10, if the ceasefire persists, the inflation surge is likely to be viewed as a temporary phenomenon. The strategists expect the Federal Reserve to resume interest rate cuts in September. They also highlighted the need to monitor the war's potential impact on Treasury issuance, as Congress might allocate additional funds for the military. Deutsche Bank strategists anticipate that any increase in issuance will remain moderate and primarily involve long-term financing, helping to avoid pressure on long-term yields.
#DeutscheBank#USTreasury#MiddleEastCeasefire#USInflation#FederalReserve#InterestRateCuts#TreasuryIssuance#MilitarySpending#LongTermFinancing
🚀 U.S. March CPI Expected to Rise Amid Ongoing Iran Conflict
The market widely anticipates that the U.S. Consumer Price Index (CPI) for March will increase by 3.4%, surpassing last month's 2.4%, marking the largest year-on-year rise in two years. According to Jin10, during past oil market shocks, the most likely commodities to see price hikes include aviation fuel, steel, aluminum, natural gas, fertilizers, and plastics. Industries reliant on these materials are already feeling the strain. The ongoing Iran conflict, which has lasted several weeks, has shifted concerns from the initial oil price surge to the compounded effects of a prolonged conflict. For many economists, the most alarming aspect is not the immediate issues but the "aftershocks" that may emerge months or even years later. JPMorgan's CEO has referred to inflation as a potential "fly in the ointment" that could undermine stock market returns in 2026. Harvard University professor and former IMF chief economist Ken Rogoff recently discussed an overlooked impact of the war: the increased military spending's effect on the already strained U.S. budget deficit. He noted the risk of soaring bond yields, which could harm the stock market and affect U.S. affordability. Rogoff also mentioned that the current supply disruptions caused by the Iran conflict are sufficient to keep oil prices elevated for a year.
#USCPI#inflation#IranConflict#oilprices#aviationfuel#steel#aluminum#naturalgas#fertilizers#plastics#economicimpact#stockmarket#JPMorgan#budgetdeficit#militaryspending#bondyields#HarvardEconomist#supplydisruptions#USaffordability