Функция 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
🗣#DAPPRADAR
Join the second season of farming by DappRadar
Deadline: TBD
What to do:
✔️Visit the website.
✔️Complete tasks to earn EXP.
✔️Claim daily points.
🟠In the first season, the project generously rewarded participants (around $100 each).
🟠This season promises even bigger rewards than the first one.
🟠Take full advantage—it's almost free, and the rewards are worth it.
Crypto Drop Club 👉 SUBSCRIBE
#dApps#DappRadar#Блокчейн#Крипто#Аналитика#Децентрализация#DeFi
Какими аналитическими сервисами пользоваться в сфере децентрализованных приложений?
В мире децентрализованных приложений (dApps) существует множество аналитических сервисов, которые помогают отслеживать активность, производительность и другие ключевые метрики. Один из самых популярных и мощных инструментов — DappRadar.
🔍 Давайте разберемся, почему он так важен и как им пользоваться!
❓Что такое DappRadar
DappRadar — это аналитический сервис, который предоставляет подробную информацию о децентрализованных приложениях, работающих на различных блокчейнах, таких как Ethereum, Binance Smart Chain, Polygon и многих других. Он помогает пользователям отслеживать активность dApps, объемы торгов, количество пользователей и множество других показателей.
⚙️Основные функции DappRadar:
• Рейтинги и списки dApps: Удобный интерфейс, который позволяет быстро найти и сравнить приложения по различным критериям, таким как количество пользователей, объем торгов и т.д.
• Аналитика и метрики: Подробная статистика по каждому приложению, включая активность пользователей, транзакции, смарт-контракты и многое другое.
• Обзоры и новости: Регулярные обновления и аналитические статьи, которые помогают оставаться в курсе последних тенденций в мире dApps.
• Поддержка различных блокчейнов: DappRadar работает с большим количеством блокчейнов, что делает его универсальным инструментом для анализа децентрализованных приложений.
❓Как использовать DappRadar
1️⃣Регистрация и вход: Создайте бесплатный аккаунт на DappRadar для доступа ко всем функциям.
2️⃣Поиск и фильтрация: Используйте различные фильтры для поиска dApps по интересующим вас критериям.
3️⃣Анализ данных: Ознакомьтесь с подробной аналитикой по каждому приложению, чтобы принимать обоснованные решения.
⚠️ Помимо DappRadar, есть множество других полезных инструментов для анализа dApps и DeFi проектов. Рассмотрим их в одном из следующих постов…
@MirraChannel😎