Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Записали мощный выпуск с кинорежиссером Руфатом Гасановым. Тема - кино и сериалы как инструмент влияния на общество. Разобрали, как правительства, спецслужбы и корпорации десятилетиями используют экран для продвижения нужных нарративов. От “Триумфа воли” до Netflix. От Пентагона до продакт-плейсмента за 20 миллиардов долларов. Голливуд - это не просто кино. Это самый дорогая PR-фирма в мире. Скоро на Youtube канале - PRWizard
#PublicRelations#связисобщественностью#PR#МягкаяСила#КиноПропаганда
PR в регионах: почему не стоит зацикливаться на столицах
В коммуникациях часто совершают одну ошибку – концентрироваться только на столицах и крупнейших городах, например Ташкенте, Бишкеке или Астане. Кажется, что именно там «живет» вся целевая аудитория и основные медиа. Но реальность в Центральной Азии куда разнообразнее.
Регионы – это не просто дополнение к столичной повестке. Это самостоятельные рынки с уникальной аудиторией, локальными медиа, блогерами и культурными кодами. Здесь меньше информационного шума, а значит – больше шансов быть замеченными и услышанными.
Локальные журналисты охотнее идут на контакт, а региональные мероприятия часто становятся ключевыми точками входа для новых клиентов и партнеров. В небольших городах быстрее формируется эмоциональная связь с брендом: люди видят, что вы пришли именно к ним, а не вещаете «в целом по рынку».
И самое важное – репутация в регионах может работать на вас даже сильнее, чем громкие столичные публикации. Здесь проще выстроить доверие и получить органичное сарафанное радио.
Если хотим устойчивого роста, PR-стратегия должна охватывать не только крупнейшие города, но и региональные площадки. Именно там часто кроются ниши, которые в столицах уже заняты конкурентами.
💬 А в ITCOMMS мы умеем находить эти точки роста и превращать их в работающие коммуникационные решения. Свяжитесь с нами – расскажем подробнее:
https://www.itcomms.io/ru/contact
#PR#PRдляIT#рынки#центральнаяазия#publicrelations#коммуникации#ITCOMMS#айтикоммс#айтикомс
🚀 Trump Criticizes Iran's Media Tactics on Truth Social
U.S. President Donald Trump expressed his views on Iran's media strategies on April 11 via Truth Social. According to BlockBeats, Trump stated that Iranians are more adept at handling fake news media and public relations than engaging in warfare. He remarked that Iran seems unaware of its lack of leverage, aside from short-term 'extortion' through international waterways. Trump concluded that Iran's current existence is solely for negotiation purposes.
#Trump#Iran#MediaTactics#FakeNews#PublicRelations#Negotiation#TruthSocial#Extortion#InternationalWaterways