Я столкнулся с трудностями при попытке выполнить около 10 функций одновременно с использованием asyncio в Django. Я не смог найти четкой документации о том, как использовать asyncio с django.
. Я сделал около 10 HTTP-запросов на разные, используя TOR, который по умолчанию медленный. Вместо того, чтобы делать эти запросы по одному, что обычно занимает около 2 минут, я хотел выполнить все 10 запросов одновременно. Есть 10 различных функций, каждая из которых делает http-запрос другого URL-адреса и очищает данные и возвращает JSON.
URLscrape.py :
async def scrape1(username):
response = request.get('http://example.com'+username)
return response.json()
async def scrape2(username):
response = request.get('http://something.com'+username)
return response.json()
У меня 10 отдельные функции, подобные приведенным выше, с разными URL-адресами и парсингом и возвращают данные json. В просмотрах Django мне понравилось это:
Views.py
from URLscrape import scrape1, scrape2........scrape10
def scrapper():
loop = asyncio.get_event_loop()
feature1 = loop.run_in_executor(None, scrape1, username)
feature2 = loop.run_in_executor(None, scrape2, username)
....
feature10 = loop.run_in_executor(None, scrape10, username)
response1 = await future1
response2 = await future2
.....
response10 = await future10
response1 = response1.text
......
response10 = response2.text
return render(request, 'index.html', {'scrape1':response1,'scrape10':response10})
Но я не знаю, как использовать l oop. run_until_complete () , чтобы завершить сценарий. Я нахожусь в ограниченной ситуации, чтобы использовать 10 отдельных функций для списания. Я хочу запустить 10 одновременно, но не знаю как. Я не мог понять концепцию и синтаксис asyncio. Помогите пожалуйста !!!