Функция 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
😄As
➖➖➖➖➖➖
🔘 As, as a conjunction, can be used to say that things are happening at the same time. We use 'as' with the background event, or when there are two short events
🔜 As you watch this video, I hope you take notes
🔘 As can introduce the reason for something, especially when it's something that we already know about.
🔜 As it's nice today, I'm going to work outside.
🔘 As can link to the way that something is done.
🔜 Watch me and do it as I do it.
#As👨🏫@America
➖➖➖➖➖➖➖➖➖➖➖➖
🆕 Crypto News @Money
😁 Crypto Game @Egame
🇺🇸 US News @America
🇯🇵 Japan News @Japan
🇦🇪 UAE News @Dubai
▶️ Popular Movies @Videos
😜 Best Funny Video @Funnys
Telegram Telah Mengubah Pendekatannya dalam Bekerja Sama dengan Pihak Berwenang AS
Menurut data baru yang dirilis Telegram, perusahaan pengirim pesan itu telah meningkatkan kerja samanya dengan lembaga penegak hukum Amerika Serikat secara signifikan pada tahun 2024.
• Telegram telah memenuhi 900 permintaan dari otoritas AS untuk tahun 2024, menyediakan data untuk 2.253 pengguna.
• Hanya 14 permintaan yang memengaruhi 108 pengguna yang telah diproses hingga Oktober 2024.
• Jumlah permintaan yang dipenuhi meroket setelah CEO Pavel Durov ditangkap di Prancis pada bulan Agustus 2024.
• Telegram memperbarui kebijakan privasinya pada bulan September, yang mengizinkan pengungkapan alamat IP dan nomor telepon kepada penegak hukum, tetapi hanya jika diwajibkan secara hukum.
Para ahli mengaitkan perubahan kebijakan Telegram dengan meningkatnya tekanan dari regulator di berbagai negara. Sebelumnya, perusahaan tersebut dikenal karena penolakannya untuk bekerja sama dengan pihak berwenang dalam penyediaan data pengguna.
Telegram belum memberikan komentar resmi apa pun tentang peningkatan jumlah permintaan yang terpenuhi saat artikel ini ditulis.
#AS