Три способа выполнить множество задач с 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
🔈Most Common Smart Speaker Usage
People are doing plenty of things with voice commands on their #SmartSpeakers, but shopping isn’t really one of them. Only about a quarter to a third of U.S. smart speaker owners have ever purchased something using voice. Very few do so on a regular basis. An Information article this summer said just 2 percent of #Alexa owners had made a purchase via Alexa in 2018.
🚀@PerspectiveIX via Recode.
❓Do you own a Smart Speaker, like Apple HomePod, Google Home, Amazon Echo, etc?
🗣The State of Chinese Voice Assistants
China is the second-largest consumer market in the world, hitting $4.3T in consumer expenditure in 2016 alone (for reference, the US ranked first with $12.5T, and Japan third with $2.7T).
The Chinese smart home market will reach nearly $23B in 2018, according to Juniper Research. #SmartSpeakers and #AI voice assistants are becoming an integral part of that.
Now that smart speakers are becoming commonplace, the early entrant, #Amazon, is losing its market share — and not just to its rival #Google, but to newer players emerging in China.
🚀@PerspectiveIX via CBInsights.
❓ Do you own a smart speaker?