Запуск асинхронных функций
Скажите, пожалуйста, каким правильно использовать запуска функций в асинхронном варианте? Есть список с вложенными списками. Где каждый список представляет из себя будущие значения для функции.
c = [[121, 'yes', 5],[345, 'no', 1]]
sphere = 121
dart = 'yes'
number = 5
Есть функция:
def test(sphere, dart, nubmer)
Я бы хотел совершить следующие действия
for element in c:
sphere, dart, number = c[0], c[1], c[2]
#дальше мне надо запускать функцию в асинхронном режиме.
#Как мне сделать так, чтобы она сама завершалась? Это нужно прописывать в самой функции?
#Или же надо останавливать поток непосредственно после каждого элемента итерации?
Ответы (1 шт):
Автор решения: 6 crimes
→ Ссылка
Возможно, данное решение подойдёт для Вас:
import asyncio
async def test(sphere, dart, number): # Поменять def на async def.
# Do Something.
return
async def task_starter(input_array):
for element in input_array:
asyncio.create_task(test(element[0], element[1], element[2]))
loop = asyncio.get_event_loop()
future = asyncio.gather(coro_starter(c))
loop.run_forever()
В таком случае будет ожидаться завершение работы Вашей функции.