Я задавал похожие вопросы несколько дней назад, но это было немного неясно, поэтому я удалил его и сделал этот новый здесь.
У меня есть проект, который получает рыночные данные с бирж криптовалюты (Binance, Kraken, Poloniex и т. Д.). Я хочу иметь возможность добавлять дополнительные обмены, пока проект запущен и работает. Например, я получаю данные каждые 10 секунд из Binance и Poloniex, но теперь я хочу добавить поддержку Kraken. Как я могу продолжать получать данные с двух других бирж (добавить Кракена без перезапуска программы).
В настоящее время я имею в виду 2 решения.
- Запустить клиент, извлекающий данные как новый процесс для каждого обмена
- Используйте
importlib.import_module()
для загрузки новых модулей и обработки каждого обмена в одном и том же процессе (используя asyncio)
Кроме того, что если я хочу добавить такие функции, как получение данных из другой конечной точки API. Метод 1, вероятно, потребовал бы перезапуска, а с методом 2 я мог бы перезагрузить все модули и обновить экземпляры классов между вызовами выборки. Но я не уверен в побочных эффектах, которые это может вызвать.
Может быть, есть способ по умолчанию для реализации такого проекта?