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