Функция 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
🎙 INVEST REPORT Injex Finance - The 1inch of Injective 🔥🥷
⚖️ INVEST REPORT project rating 9/10 ⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
It is the final day of Round 1 in $INJX Presale, and this is your moment to act before the price jumps.
Join Presale: https://sale.injex.fi/
Don’t let this chance slip through your fingers! Secure your $INJX tokens now at the most favorable price. Join the future of decentralized finance on the Injective chain.
Act now, join the presale.
https://sale.injex.fi/
#INJ#Presale
#PoshCoin#Presale
Public Presale Started NOW!
ℹ️ Info About PoshCoin: PoshCoin is a new crypto token that will revolutionize the digital economy – mainly selling and purchasing goods in the cannabis sector.
PreSale Link:https://www.pinksale.finance/launchpad/0xD90267576273A0d640850De1beFdF366744C13DB?chain=BSC
⚜️ Token Information
🔶Token Name: Poshcoin
🔶 Symbol: PSCN
🔶Type: BEP-20
🔶 Minimum Buy: 0.0035BNB
🔶 Maximum Buy: 35BNB
🌐 Useful links :
Telegram Channel Platform: https://t.me/PoshCoinPSCN
Telegram platform group: https://t.me/poshcoin_pscn
JOIN PRESALE NOW!
Disclaimer: Please do your own research before joining to any project.
#MetaCubez#Presale
A Metaverse Full of Possibilities
✔️ Licenced From Singapore and UAE
✔️ Audited Smart Contract
✔️ KYC Team
✔️ 30% Burnt
✔️ 60% Locked
✔️ Professional team from all around the world
MetaCubez Pre-Sale is Live Now!🔥🔥
https://linktr.ee/MetaCubez
Check out there Social Links
Channel | Community | Website | Instagram | Discord | Twitter
🚨🚀 Exciting news for all crypto enthusiasts! 🌟🤑
🚨🚀 25% of DLX tokens will be available for pre-sale on Pinksale Finance from April 25-30, 2023. This is a rare opportunity to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
Hey all you crypto enthusiasts! We've got some awesome news to share - the pre-sale for DLX tokens on Pinksale Finance is starting soon! From April 25-30, 2023, 25% of the total DLX token supply will be available for purchase. Don't miss out on this chance to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
🔥👇 Web site Dollex Network
https://dollox.network/
‼️Note: We are airdrop hunters and only participate in free airdrops, please do not send any fee for receiving airdrop tokens.
🚨🚀 Exciting news for all crypto enthusiasts! 🌟🤑
🚨🚀 25% of DLX tokens will be available for pre-sale on Pinksale Finance from April 25-30, 2023. This is a rare opportunity to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
Hey all you crypto enthusiasts! We've got some awesome news to share - the pre-sale for DLX tokens on Pinksale Finance is starting soon! From April 25-30, 2023, 25% of the total DLX token supply will be available for purchase. Don't miss out on this chance to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
🔥👇 Web site Dollex Network
https://dollox.network/
‼️Note: We are airdrop hunters and only participate in free airdrops, please do not send any fee for receiving airdrop tokens.
💎 MetaGram Presale — Early Investors’ Edge!
Be among the first to secure $MGR before listing at $0.0519.
⚡️ Buy & Earn instantly with our new swap-style UI:
0.001 BNB → 50 $MGR (free airdrop)
0.01 BNB → 500 $MGR
🤝 Referrals: +50% $MGR & +50% BNB back
🔥 Early entry = maximum upside. Don’t wait until the price goes public.
👉metagram.digital
#MetaGram#Presale#BNB#Crypto
💎 MetaGram Presale — Early Investors’ Edge!
Be among the first to secure $MGR before listing at $0.0519.
⚡️ Buy & Earn instantly with our new swap-style UI:
0.001 BNB → 50 $MGR (free airdrop)
0.01 BNB → 500 $MGR
🤝 Referrals: +50% $MGR & +50% BNB back
🔥 Early entry = maximum upside. Don’t wait until the price goes public.
👉metagram.digital
#MetaGram#Presale#BNB#Crypto