Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
⚠️ Blogerlar uchun YANGILIK: Captions kompaniyasi yangi Mirage texnologiyasini taqdim etdi. Neyron tarmoq noldan odamlarni yaratadi va ovozni video formatiga maksimal aniq oʻgiradi.
😱 Bu haqiqiy inqilob! Boshqa modellar faqat lablarni harakatlantirsa, Mirage hammasini qiladi:
✅ Tana modelini yaratadi
✅ Haqiqiydan ajratib bo'lmaydigan harakatlar
✅ Fon
✅ Tabiiy mimika
➡️https://www.captions.ai/mirage
➡️#ai#captions | Birinchi raqamli IT-Blog
· · • • • •❄️• · · INSTAGRAM · · •❄️• • • • · ·
Escribir captions en Instagram es un arte y es una excelente manera de impulsar el compromiso por parte de tu comunidad.
Tus descripciones son representaciones de tu marca. Y podrían ser la última pieza que necesitas mejorar para pasar de un feed bueno a uno profesional. De hecho, escribir captions en Instagram podría ser la clave para que tu publicación gane visibilidad. Así que lee estos Tips para escribir captions en Instagram y luego me cuentas que te parecen 😉.
#tips_instagram
#captions
· · • • • • • · · · · • • • ☃️• • • · · · · • • • • • · ·
· · • • • •🌼• · · INSTAGRAM · · •🌼• • • • · ·
Uno de los beneficios de los posts en Instagram es que puedes cargar fotografías, diseños, videos e incluso galerías de hasta 10 imágenes juntas. En este caso la clave es que lo que sea que uses como portada sea lo suficientemente atractivo para que los usuarios se detengan a leer tu caption.
#tips_instagram
#captions#consejos
· · • • • • • · · · · • • • 🍃• • • · · · · • • • • • · ·
#python#asr#captions#cli#python#subtitle#subtitles#transcript#transcripts#translating_transcripts#youtube#youtube_api#youtube_asr#youtube_captions#youtube_subtitles#youtube_transcript#youtube_transcripts#youtube_video
The YouTube Transcript API is a tool that helps you get the text from YouTube videos. It's fast and easy to use, saving you time compared to watching the whole video. You can use it to make subtitles, translate text, and even analyze what's being said in videos. This is helpful for content creators who want to make their videos more accessible and for researchers who need to study video content quickly. It also supports multiple languages, making it useful for a wide range of users.
https://github.com/jdepoix/youtube-transcript-api