فارسی
باز کردن در Telegram

رشتهٔ گفتگوНе могу понять почему в коде на белом скрине мне приходится явно оборачивать ожидание окончания таски в блок try except?…

4 پیام · –
V
عکس
برای نمایش کلیک کنید
عکس
برای نمایش کلیک کنید
Не могу понять почему в коде на белом скрине мне приходится явно оборачивать ожидание окончания таски в блок try except? Если этого не делать, то ошибка CancelledError На черном скрине похожий пример, но без блока try except и там все ОК
  1. V
    Дело не в TaskGroup, а в том, вызываешь ли ты await task после task.cancel(). На черном скрине... Что происходит: 1. Создаётся задача background(). 2. Через 5 секунд вызывается task.cancel(). 3. Выполняется return 42. 4. Python начинает выходить из async with TaskGroup. 5. TaskGroup дожидается завершения задачи. 6. Задача завершается с CancelledError. 7. TaskGroup считает отмену дочерней задачи нормальным завершением и не пробрасывает CancelledError наружу. На белом скрине всё иначе.... речь про эти строки task.cancel() await task task.cancel() запрашивает отмену задачи. При следующем подходящем моменте выполнения в отменяемую корутину будет выброшено исключение asyncio.CancelledError. так и вот главное... Если ты явно делаешь await task для отменённой задачи, CancelledError будет выброшен уже в твоей текущей корутине.
    ❤2
ССообщество Python ПрограммистовСообщество Python Программистов@python_scripts · گروه · فناوری
4 169عضو43نویسنده در 30 روز
فید انجمن باز کردن در Telegram

فید عمومی باز از ایندکس جست‌وجو ChatCrawler — «Google برای Telegram عمومی»؛ با خزش انجمن به‌روز می‌شود. زمان‌ها به UTC است.

فقط محتوای عمومی، API رسمی Telegram. دربارهٔ ما · پرسش‌ها · محدودیت‌های ایندکس · حذف یک صفحه · کاتالوگ · جست‌وجو · روش محاسبهٔ ما