Три способа выполнить множество задач с 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
#Sentiment notes that the activity of #BTC discussion on social media has risen to a 4-month high, there is a serious panic among the crowd. Such depressive indicators in the moods usually preceded the rebounds.
⚡️ Sentiment notes a decrease in the number of wallets with a non-zero balance 🪙#BTC, which may mean that some participants will enter the cache before the US elections. The experts of #Sentiment consider this development of the situation to be #bullish for #BTC after the elections are held...
#Sentiment notes a sharp rise in bullish sentiment in #Solana
there are rumors that #Apple (#AAPL) is starting to use the Solana — Sentiment blockchain
🤣Ethereum Fear & Greed Index has dropped to 13, signaling Extreme Fear across the market.
市場情緒跌入 極度恐懼區間,代表短期資金風險偏好明顯下降,投資人情緒趨於保守。
#Crypto#以太坊#币圈#区块链
⚡️ 歷史上極度恐懼區域,往往出現在市場接近階段性底部時,但短線波動仍可能持續。
#Ethereum#Markets#Sentiment
———
👇⭐️👇
🤣留言分享觀點
🥲👇