Здравствуйте, у меня возникло непонимание как поступить.
У меня есть приложение, которое парсит данные с двух сайтов. Все это делается синхронно, шаг за шагом. В сумме получается 20-25 секунд. Для одного из сайта используется библиотека grequests(основанная на gevent). У меня возникла идея как ускорить этот процесс. Я прочитал очень много информации по этому поводу. В итоге для python обнаружил 3 варианта: threading, multiprocessing, асинхронные запросы.
Как мне лучше реализовать архитектуру для моего парсера. Вижу я это так.
Есть главный поток, который связывает парсер для первого сайта и парсер для второго сайта.
Каждому парсеру выделяется свой процесс. То есть теперь в сумме у нас 3 процесса(основной, парсер1, парсер2)
В процессах парсер1 и парсер2 использовать асинхронные запросы.
Правильно ли я мыслю? Или меня надо прибить лопатой?)
И еще маленький вопросик. Отличие от асинхронных запросов и потоков в том, что асинхронный это сокет, который не закрывается после каждого запроса. А поток это просто распараллеливание для использование всех ресурсов системы. Правильно?
Немного запутался. Получается я с помощью этой библиотеки запускаю первый парсер, потом второй и третий. Дальше в основном я начинаю получать просто данные с парсеров. да?
sim3x: то есть, например, мне нужно считывать информацию с сайтов каждые 5 секунд. Значит в главном потоке, каждые 5 секунд я запускаю парсеры через parallel. Они заканчивают работу, и выводят данные. Я эти данные как то должен считать. И потом я уже начинаю обрабатывать эти данные в главном потоке. Как мне данные вытащить после окончания работы парсера?