Три способа выполнить множество задач с asyncio
Функция для примера:
async def do_it(n):
await asyncio.sleep(random.uniform(0.5, 1))
return n
1. Последовательный вызов
async def main():
for i in range(100):
result = await do_it(i)
Такой вызов имеет смысл только тогда, когда результат одной задачи требуется для вызова следующей.
Если они независимы, то это антипаттерн, так как аналогичен простому синхронному вызову по очереди.
2. Упорядоченный результат
async def main():
tasks = [do_it(i) for i in range(100)]
results = await asyncio.gather(*tasks)
Выполняет корутины конкурентно и возвращает результат в виде списка.
Полезен когда требуется получить результаты в том же порядке в котором задачи отправлены.
3. Результат по мере готовности
tasks = [asyncio.create_task(do_it(i)) for i in range(100)]
for cor in asyncio.as_completed(tasks):
result = await cor
Так же выполняет корутины конкурентно, но не гарантирует порядок. Результат возвращается по мере готовности, каждый отдельно.
Полезен когда нужно обработать любой ответ как можно скорее.
#async
🎉 Celebrating the upcoming IHO of @RankerDAO on Hot Cross with a sweet giveaway!
🎁 $10,000 in #HOTCROSS
🎮 $10,000 in $RANKER
🏆 500 Winners ($40 each)!
To join the campaign, do the following:
🐷 Follow @hotcrossann & https://t.me/RankerDAO_ann Announcements
🐷 Join @hotcross & @RankerDAO TG Group
🐷 Follow https://twitter.com/hotcrosscom & https://twitter.com/RankerDAO?t=chy4IrKNI1nJpvz58lTjxA&s=09 on Twitter
🤞Mandatory task
♻️ + ❤️ = RT + Like
Fill the form below 👇🏼👇🏼👇🏼
https://t.co/SBRaDgUu5i
#airdrophttps://t.co/OdpjOYVT7v
🎂 We would like to wish our friends at @FrontierDotXYZ a happy 1-year anniversary for $FRONT!
🎁#Giveaway time! Woohoo!
🏆 Download the Frontier Crypto & DeFi Mobile App to receive your share of $10,000 in #HOTCROSS
🎁 To join the campaign, do the following:
🐷 Follow @hotcrossann Announcements
🐷 Join @hotcross TG Group
🐷 Follow https://twitter.com/hotcrosscom on Twitter
🔷 Follow https://twitter.com/frontierdotxyz on Twitter
🔷Follow @FrontierDotXYZ Announcements.
♻️ Retweet the event on Twitter:
Finally:
📨 Fill in the Gleam form for a chance to win!
https://t.co/VN0d12SIXGhttps://t.co/bUrhZX7I3n
Good luck 🤞.
🎊 Hot Cross hops into The Metaverse with SecondLive and an out of this world Blind Box Campaign!
🎂 To celebrate the 1-Year Anniversary of #BinanceSmartChain@bsc_official_announcement we are teaming up with @SecondLiveCommunity to give away Limited Edition #HOTCROSS blind boxes and mine $HOTCROSS during the festival.
🎁 To join the campaign, do the following:
🐷 Follow @hotcrossann Announcements
🐷 Join @hotcross TG Group
🐷 Follow Hot Cross on Twitter
🔷 Follow SecondLive on Twitter
🔷 Join @SecondLiveCommunity TG Group
♻️ Retweet the event on Twitter: https://twitter.com/hotcrosscom/status/1430478918423748613
Finally:
📨 Fill in the Gleam form for a chance to win!
https://hotcross.link/secondlive
Good luck to all in the Metaverse and Happy Anniversary to Binance Smart Chain!
🎂 Celebrating the Second hotcross IHO on #binancesmartchain.
🎁#Giveaway time! Woohoo!
20000$ in #Hotcross + $PEL for 1000 winners.
🎁 To join the campaign, do the following:
🐷 Follow @hotcrossann Announcements
🐷 Join @hotcross TG Group
🐷 Follow https://twitter.com/hotcrosscom on Twitter
🔷 Follow https://twitter.com/propelxyz
🔷Follow https://t.me/propelchat
🎆 Follow. https://t.me/propel_ann
♻️ Retweet the event on Twitter:
Finally:
📨 Fill in the Gleam form for a chance to win!
https://gleam.io/PJO9K/the-hot-cross-x-propel-iho-giveaway
Good luck 🤞.
🎂 Celebrating the first ever hotcross IHO on #binancesmartchain.
🎁#Giveaway time! Woohoo!
20000$ in #Hotcross + $toon
🎁 To join the campaign, do the following:
🐷 Follow @hotcrossann Announcements
🐷 Join @hotcross TG Group
🐷 Follow https://twitter.com/hotcrosscom on Twitter
🔷 Follow https://twitter.com/PontoonFi
🔷Follow https://t.me/pontoon_fi group
♻️ Retweet the event on Twitter:
☠☠Read article for more info - https://updates.hotcross.com/p/iho-pontoon-finance
Finally:
📨 Fill in the Gleam form for a chance to win!
https://gleam.io/tGZd0/the-hot-cross-x-pontoon-iho-giveaway
Good luck 🤞.