Несколько запросов на сервер и запись в файл без ожидания ответа - PullRequest
0 голосов
/ 29 марта 2019

Я делаю программу прогнозирования белка на основе геномных данных, и в какой-то момент мне нужно отправить несколько запросов на сервер и записать результаты в файл.У меня есть около 100 запросов и файлов для записи.Проблема в том, что каждый ответ занимает от 2 до 5 минут, чтобы ответить и написать файл.Это означает, что для цикла требуется более 3 часов.Дело в том, что мне не нужны результаты первого запроса для второго, третьего и так далее.Я хотел бы сделать 100 запросов одновременно.Как я могу это сделать?

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

from Bio.Blast import NCBIWWW
from Bio.Blast import NCBIXML

seq1 = "AGYRGYGCAYGCGYAGCAGC"

result_handle = NCBIWWW.qblast("blastp","nr",seq1)
blast_file = open("my_blast_1.xml", "w")
blast_file.write(result_handle.read())
blast_file.close()
result_handle.close()

Это пример кода для выполнения запроса и записи файла на одноммоей последовательности.Он делает то, что ожидается, но мне нужно найти способ сделать это 100 раз одновременно для моего seq1, seq2, seq3, seq4 ...

Спасибо

...