Функция asyncio.wait() это еще один способ вызвать множество асинхронных задач.
Она работает в нескольких режимах.
1. Самый простой - ждем завершения всех задач
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(10)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.ALL_COMPLETED
)
for task in done:
try:
print(task.result())
except Exception as e:
print(e)
Очень похоже на gather, но работает не так.
▫️возвращает не результаты, а два сета с объектами Task у которых можно забрать результат через task.result() если они в списке done
▫️не гарантирует порядок результатов так как оба объекта это set
▫️не выбрасывает исключение когда оно появляется, а сохраняет его в Task. Исключение появится когда попробуете забрать резултьтат.
2. Ждем завершения первой задачи, даже если там ошибка.
async def main():
tasks = [asyncio.create_task(do_it(i)) for i in range(3)]
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_COMPLETED
)
# в done может быть несколько задач!
for task in done:
try:
print(task.result())
except Exception as e:
print(f"Fail: {e}")
# Оставшиеся задачи в pending, как правило, нужно отменить, иначе они будут продолжать работать
for task in pending:
task.cancel()
В сете done будут таски которые успели завершится, причем как успешно так и нет.
3. До первой ошибки.
Тоже самое, но с аргументом FIRST_EXCEPTION
done, pending = await asyncio.wait(
tasks,
return_when=asyncio.FIRST_EXCEPTION
)
Функция завершается как только первая задача упадет с ошибкой.
Учтите, что в любом случае done вы можете обранужить несколько задач, как с ошибками так и успешные.
↗️ Полный листинг примеров здесь
#async
📩#ENAUSDT 1h | Mid-Term
📉Long Entry Zone: 0.3388-0.3188
🎯 - Strategy Accuracy: 93.16%
Last 5 signals: 100.0%
Last 10 signals: 91.67%
Last 20 signals: 95.45%
⏳ - Signal details:
Target 1: 0.3439
Target 2: 0.3490
Target 3: 0.3540
Target 4: 0.3693
_____
🧲Trend-Line: 0.3188
❌Stop-Loss: 0.3140
💡After reaching the first target you can put the rest of the position to breakeven
📩#ENAUSDT 1h | Mid-Term
📉Long Entry Zone: 0.3974-0.3801
🎯 - Strategy Accuracy: 93%
Last 5 signals: 100%
Last 10 signals: 90%
Last 20 signals: 95%
⏳ - Signal details:
Target 1: 0.4034
Target 2: 0.4093
Target 3: 0.4153
Target 4: 0.4332
_____
🧲Trend-Line: 0.3801
❌Stop-Loss: 0.3744
💡After reaching the first target you can put the rest of the position to breakeven
📩#ENAUSDT 1h | Mid-Term
📉Short Entry Zone: 0.1189-0.1242
🎯 - Strategy Accuracy: 94.26%
Last 5 signals: 100.0%
Last 10 signals: 100.0%
Last 20 signals: 100.0%
⏳ - Signal details:
Target 1: 0.1175
Target 2: 0.1160
Target 3: 0.1146
Target 4: 0.1103
_____
🧲Trend-Line: 0.1242
❌Stop-Loss: 0.1257
💡After reaching the first target you can put the rest of the position to breakeven
#ID20000036639
📩#ENAUSDT 1h | Mid-Term
📈Long Entry Zone: 0.1737-0.1678
🎯 - Strategy Accuracy: 94.11%
Last 5 signals: 100.0%
Last 10 signals: 100.0%
Last 20 signals: 100.0%
⏳ - Signal details:
Target 1: 0.1758
Target 2: 0.1779
Target 3: 0.1800
Target 4: 0.1862
_____
🧲Trend-Line: 0.1678
❌Stop-Loss: 0.1658
💡After reaching the first target you can put the rest of the position to breakeven
#ID20000036408
📩#ENAUSDT 1h | Mid-Term
📈Long Entry Zone: 0.2118-0.2024
🎯 - Strategy Accuracy: 83.44%
Last 5 signals: 90.0%
Last 10 signals: 85.0%
Last 20 signals: 77.5%
⏳ - Signal details:
Target 1: 0.2150
Target 2: 0.2182
Target 3: 0.2213
Target 4: 0.2309
_____
🧲Trend-Line: 0.2024
❌Stop-Loss: 0.1994
💡After reaching the first target you can put the rest of the position to breakeven
#ID20000035694
👀 Well, would you look at that! 👆
#ENAUSDT has just reached 9th TP in the VIP CLUB channel!!!👍
With a 5% entry and a $1000 deposit, you could've earned $461!
Every day we're on fire! 🔥🔥🔥ACCESS TO MANUAL TRADING for 70usdt/month
👉 Not sure? Considering? Contemplating? Come have a look at our performance reports, spend about5 minutes and see for yourself that everything is 100% legit! @propheta_reports
Register and get bonuses up to $6,000
Binance | OKX | ByBit👈🏻click!
#AItrader#cryptobot#cryptochannel