@kuzmenko_alex

Что подходит для моей задачи: многопоточность или асинхронность?

Добрый день!

Необходимо выполнять следующие действия: создать http сессию, взять из БД ссылки, отправить на них какое-то количество запросов, ответы записать обратно в БД. Сессий таких должно быть много и обрабатывать их по очереди очень долго. Надо это дело как-то ускорить.

Первым в голову приходит использовать потоки. Я бы породил много потоков, каждый вошел бы в свою сессию, отправил пару запросов, результат записал в БД (все потоки должный корректно работать с одной БД) и завершился. По крайней мере, это понятный способ для меня.

Сейчас в интернете часто вижу упоминания asyncio и всякой асинхронщины и мне стало интересно можно ли решить мою проблему с помощью асинхронности.

И так, что лучше подходит для решения моей задачи: параллельное выполнение (threads, forks, multiprocessing) или асинхронность (asyncio, aiohttp, twister, tornado)?

Буду очень благодарен за любой совет!
  • Вопрос задан
  • 6873 просмотра
Пригласить эксперта
Ответы на вопрос 3
AMar4enko
@AMar4enko
Лучше потоки используйте, вам их отлаживать будет проще.
Ответ написан
Комментировать
Rrooom
@Rrooom
У вас возник вопрос. Вы ждете на него умные ответы.
А может лучше было бы реализовать сначала один вариант, а потом другой? Что кончательно понять, чо легче и лучше ложится под вашу задачу?

Основная работа отправка http запросов? Берите twisted или async http client торнады - легче и быстрее получится.
Ответ написан
Комментировать
Matvey-Kuk
@Matvey-Kuk
Разработчик в Cisco, CA.
Главное, выбирая параллельность, не забывать про habrahabr.ru/post/84629
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы