Три способа выполнить множество задач с 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
#Mannheim#stabbing
• Male cop tackles this guy for some reason
• Cop Attempts to restrain him
• Male cops gets stabbed by the actual #stabber
• Blue coat guy still gets arrested by useless female cop
W.T.F 🤷♂
These have to be the stupidest police officers ever!
LIVE: UK police give an update after stabbing of lawmaker David Amess
British police give a briefing after British lawmaker David Amess was stabbed to death by a man who attacked him at a meeting with constituents.
#Reuters#UKMP#stabbing # #Live#UKpolitics
➖@reutersworldchannel➖
LIVE: View outside the church where UK lawmaker David Amess was stabbed to death
Live view outside the Belfairs Methodist Church where British Conservative lawmaker David Amess was stabbed to death by a man who walked into a meeting with voters.
#Reuters#UKMP#stabbing # #Live#UKpolitics
Subscribe: http://smarturl.it/reuterssubscribe
Reuters brings you the latest business, finance and breaking news video from around the globe. Our reputation for accuracy and impartiality is unparalleled.
Get the latest news on: http://reuters.com/
Follow Reuters on Facebook: https://www.facebook.com/Reuters
Follow Reuters on Twitter: https://twitter.com/Reuters
Follow Reuters on Instagram: https://www.instagram.com/reuters/?hl=en
➖@reutersworldchannel➖
Several people injured in a mass-#stabbing at a rally in #Germany organised by #PaxEuropa, which is an organisation opposed to the "Islamisation of Europe".
Activist and blogger Michael #Stürzenberger was among the injured.
A German cop also got stabbed in the neck after he attacked one of the rally members, (one of those who was trying to subdue mad stabber), and then the stupid cop knelt on his chest like he was the problem - a microcosm of #EU decision-making.
Looked like the cop just saw white German guy grappling with a muslim guy and immediately presumed that the white guy was the problem.
Sometimes you deserve what you get 🤷♂
The last video looks the astoundingly stupid German police officers placing the white German guy under arrest 🤷♂
Compare and contrast #UK#PrimeMinister#Starmer's reaction to:
• "firey but mostly peaceful" #BLM riots in the US after the death of petty criminal drug-addict George Floyd
Vs
•#White Working class "Anti-#Stabbing" riots in the #UK after the #murder of 3 #children