API-интерфейсы сканирования — подход параллелизма для периодических HTTP-вызовов ⇐ Python

Программы на Python
Anonymous
API-интерфейсы сканирования — подход параллелизма для периодических HTTP-вызовов

Сообщение Anonymous »

Я работаю над фрагментом кода, который сможет работать с несколькими веб-API (аппаратными средствами, API-интерфейсы которых сообщают о состоянии машины), не блокируясь, когда один из них ожидает ответа от другого после получения ответа. из одного прибытия он будет отправлен на веб-сокет. Одно из требований — не убивать API, поэтому нажимайте на них, скажем, раз в 5 секунд, пока работает основной процесс.

Важная часть, с которой я борюсь, это как вообще к этому подойти.
Что я сделал до этого момента, так это то, что основной процесс порождает отдельные потоки для разных API, и этот поток обращается к API, отправляя ответ на веб-сокет time.sleep(5) и повторяя его. Основной процесс отвечает за запуск новых «работников» и уничтожение тех, которые больше не нужны, а также за перезапуск тех, которые должны работать, но не являются, например, исключением.
Я понятия не имею, является ли многопоточность способ пойти сюда - скажем, я стремлюсь «просканировать» 300 API.

Является ли создание долгоживущих рабочих правильным способом достижения этой цели? Должны ли это быть процессы? Может быть, мне нужно, чтобы основной процесс выполнял координаты, выполняющие кратковременные потоки, которые будут выполнять вызов API и умирать, и делать это каждые 5 секунд для каждого API (кажется, это намного хуже поддерживать)? Если последний вариант, то как обрабатывать случаи, когда ответ занимает более 5 секунд?

Некоторые люди сейчас говорят об asyncio Python, как будто это золотое решение для все проблемы, но я не понимаю, как это может вписаться в мою проблему.

Может ли кто-нибудь направить меня в правильном направлении?

Подробнее здесь: https://stackoverflow.com/questions/559 ... http-calls

Вернуться в «Python»