Python – запуск нескольких асинхронных функций одновременно ⇐ Python

Программы на Python
Anonymous
Python – запуск нескольких асинхронных функций одновременно

Сообщение Anonymous »

По сути, я создаю пингер, который создает 2d-список пар ключ/вебхук, и после проверки ключа отправляю ответ на вебхук
2d список выглядит следующим образом:

Код: Выделить всё

some_list = [["key1", "webhook1"], ["key2", "webhook2"]]
Моя программа по сути представляет собой цикл, и я не совсем уверен, как можно повернуть данные some_list в функции.
Вот небольшая демонстрация того, как выглядит мой скрипт:

Код: Выделить всё

async def do_ping(some_pair):
async with aiohttp.ClientSession() as s:
tasks = await gen_tasks(s, some_pair)
results = await asyncio.gather(*tasks*)
sleep(10)
await do_ping(some_pair)
Я пробовал:

Код: Выделить всё

async def main():
for entry in some_list:
asyncio.run(do_ping(entry))
но поскольку функция do_ping является самовызывающим циклом, она просто вызывает первую функцию снова и снова и никогда не доходит до последующих. Надеясь найти решение этой проблемы, будь то многопоточность или что-то подобное, и если у вас есть лучший способ структурирования значений some_list (который, как я предполагаю, будет словарем), не стесняйтесь оставить и этот отзыв


Подробнее здесь: https://stackoverflow.com/questions/717 ... ltaneously

Вернуться в «Python»