Недавно делал быстрый прототип асинхронного приложения в котором требовалось вызывать много синхронного кода. Да, я знаю, что это не лучший дизайн, но нужно было быстрое решение на один процесс и без очередей. Поэтому я выполнял код в потоках.
Выглядело это примерно так:
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
Агентство Республики Казахстан по финансовому мониторингу запустило бот в Telegram: "АФМ Іnsider" @afm_insider_bot
Граждане имеют возможность сообщить о фактах экономических правонарушений (финансовые пирамиды, теневой бизнес и прочее).
#amlcft#fincrime
19 июня в г. Алматы прошел Центрально-Азиатский Форум "Комплаенс и Фрод 2024", организаторами которого также выступил Compliance Hub, Lexis Nexis Risk Solutions, Ассоциация финансистов Казахстана, Ассоциация банков Узбекистана, Союз банков Кыргызстана.
Мероприятие объединило под общим шаныраком более сотни экспертов из сферы комплаенс, противодействия отмыванию денег и финансированию терроризма, риск-менеджмента, противодействия мошенничеству и прочим финансовым преступлениям, и иных специалистов из Казахстана, Узбекистана, Кыргызстана, а также других стран.
Данное мероприятие проводится второй год и уже стало доброй традицией для Центрально-Азиатского комьюнити комплаенс экспертов.
#compliance#amlcft#sanctionscompliance#fincrime
Chainalysis опубликовал The Crypto Crime Report 2024 с анализом преступлений с использованием цифровых активов, а также тенденций в этой сфере.
https://go.chainalysis.com/crypto-crime-2024.html
#fincrime#digitalassets#cryptocurrency
Немного фотографий с Центрального-Азиатского Форума "Комплаенс и Фрод 2024".
https://www.instagram.com/p/C8sTIlDCIjX/?igsh=MWl3OTJmM2EwNXNrNg==
#compliance#fraud#amlcft#fincrime
Коллеги, привет!
Refinitiv, подразделение LSEG, в партнерстве с AFSA, рады пригласить вас присоединиться к бесплатному мероприятию по гибридным рискам, которое состоится в Астане в пятницу, 23 июня 2023 года.
Ждём вас завтра!
Регистрация по ссылке
#compliance#fincrime#amlcft#sanctionscompliance#cryptocompliance
Уважаемые коллеги!
Публикуем небольшое интервью, подготовленное AIFC Business, с CEO Compliance Hub, в котором он рассказал:
✦ о роли Compliance Officer и Money Laundering Reporting Officer (MLRO) в рамках требований Astana Financial Services Authority (AFSA) и AIFC (Astana International Financial Centre)
✦ о функционале Compliance Officer и MLRO
✦ о требованиях к Compliance Officer и MLRO
✦ про историю создания и деятельность Compliance Hub Community
Приоритетом Compliance Hub является продвижение высоких стандартов в области комплаенс, противодействия отмывания денег, защиты персональных данных и смежных областей в регионе, а также формирование Best Practice in Compliance для МФЦА, Казахстана, Центральной Азии и не только.
В настоящее время членами хаба являются эксперты из Казахстана, стран Центральной Азии, Европейского Союза, ОАЭ, США и пр.
В случае вашего желания стать членом Compliance Hub, вы можете связаться с @assel0808
#aifc#compliance#mlro#amlcft#fincrime
https://www.instagram.com/reel/DDPc9xeCyPK/?igsh=cjBqdGVoM2FsYm43