TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #401 · 15 дек.

Функция 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

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #sagernet

当前筛选 #sagernet清除筛选
Libreware

@libreware · Post #932 · 26.04.2021 г., 12:17

SagerNet ---- a universal proxy tool for Android Supported proxy protocols: SOCKS, Shadowsocks, SSR, VMess, VLESS, Trojan. Supported subscription protocols: Universal Base64 format, Shadowsocks SIP008, Clash. A week ago, due to dissatisfaction that almost all agents on Android are closed source (except shadowsocks-android); already closed source and pretending to be open source (v2rayNG), I started to make this tool. The difference between basic functions and shadowsocks-android: no log and tracking components, no closed source dependency, v2ray replaces the built-in simple routing and traffic statistics. The difference between the basic function and v2rayNG: v2rayNG's function is not perfect, the code is not good-looking, and now it is fake open source (. In addition, we have also made a China Apps scanner for sub-application agents (based on DEX path scanning, identifying the characteristics of the SDK, tracking components, and reinforcement programs of major domestic manufacturers, and it is close to practical after small-scale testing) Other features: agent grouping, display modification when subscribing to update, etc. Project address: https://github.com/nekohasekai/SagerNet The first beta version is now released, and you can download it from GitHub Release https://github.com/nekohasekai/SagerNet/releases/ or Telegram channel https://t.me/SagerNetApks (compiled and released via GitHub Actions). For more introduction and compilation, please check Github Repo~ Don't forget to click a star If there is a crash or other problem, please export the application log on the about page and send it to the discussion group of this channel. Feedback is welcome ~ #sagernet#proxy @sagernet