Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
China Tightens Control Over AI-Generated Content
China's Cyberspace Administration has introduced a draft regulation that will require digital platforms to clearly label all AI-generated content. This new regime would mandate visible logos and metadata embedded in texts, images, videos, and audio files created by AI. In some cases, audio content must include voice prompts identifying AI-generation, while videos would display notifications at key points.
The proposed rules aim to tighten control over AI-generated material by ensuring accountability. Platforms will also be required to analyze and label any suspicious content that lacks metadata. This move underscores China’s broader vision for stringent regulation of AI technologies and user-generated content, with significant penalties for non-compliance.
#AIRegulation#AICompliance#ChinaTech#AIGovernance
China invents game-changing process that turns desert sand into fertile soil in just 10 months
[Read FullArticle]
@WorldNews#DesertGreening#Agritech#ChinaTech
China is not showing any sign of a slowdown in building up a national 5G network, even when the coronavirus outbreak has shattered the global supply chain.
The total number of 5G base stations will range between 600,000 and 800,000 by the year’s end (c) KrAsia
#china#china🇨🇳#5g#technology#tech#chinatech
Didi Chuxing has launched a new intra-city errand service in Chengdu and Hangzhou with a starting rate of RMB 12 (USD 1.72) for the first four kilometers, RMB 20 for a delivery distance of four to 10 kilometers, and RMB 30 for a distance higher than 10 kilometers (c) KrAsia.
Be ready for lower prices from Meituan and Eleme soon.
#china#didi#delivery#chinatech#chinabusiness
SonarWatch Acquired; Bitpanda Gains EU License
🔗 Multichain DeFi tracker SonarWatch acquired by Jupiter.
🔗 Bitpanda secures German MiCA license from BaFin, enabling operations across 27 EU nations and enhancing growth with 6 million users.
🔗 Coinbase CEO advocates for token listing reform amid surge in new tokens, reaching 1 million weekly.
🔗 Nasdaq futures drop nearly 2% as China's DeepSeek AI casts shadow over US tech stocks.
🔗 DeepSeek app tops free downloads in US App Store.
🔗 Trump administration considered handing over TikTok operations to Oracle.
🔗 AI search developer Perplexity proposes TikTok acquisition with 50% future IPO stake for the US government.
🔗 TikTok users in the US report censorship issues post-unblocking.
🔗 Russian lawmakers suggest potential unblocking of foreign social networks if sold to local investors.
#DeFi#SonarWatch#Bitpanda#MiCA#Coinbase#AI#DeepSeek#TikTok#Oracle#USStocks#Censorship#NASDAQ#TechNews#Investment#ChinaTech#Innovation#Crypto#VC#USGovernment