Отдельно разберём TaskGroup, который пришел на замену gather в Python 3.11.
Ключевые отличия
▫️create_task() возвращает объект asyncio.Task, у которого есть соответствюущие методы управления. То есть у нас больше контроля
▫️это контекстный менеджер, который гарантирует что все таски будут остановлены по выходу из контекста
▫️ошибка автоматически отменяет незавершенные задачи,
▫️except* передает нам ExceptionGroup, в котором каждую ошибку можно обработать отдельно
import asyncio
import random
async def do_it() -> str:
if random.random() < 0.1:
raise ValueError('Oops')
delay = random.uniform(0.5, 1.5)
await asyncio.sleep(delay)
return delay
async def main():
try:
async with asyncio.TaskGroup() as tg:
for _ in range(10):
tasks.append(tg.create_task(do_it()))
for t in tasks:
print(t.result())
except *ValueError as e:
for err in e.exceptions:
print(err)
asyncio.run(main())
Рекомендую изучить страницу Coroutines and Tasks из документации, где представлено больше интересных примеров и механизмов
- таймауты
- отмена задач
- создание задач из другого потока
#async
Chevrolet Tracker - shaharda hamda shahar tashqarisidagi sarguzashtlar uchun eng yaxshi avtomobildir.
Chevrolet Tracker - идеальный автомобиль для приключений в городе и на природе.
#chevrolet#chevroletuzbekistan#tracker
Chevrolet Tracker - zamonaviy va keng interyer.
O’zingizga o’xshagan zamonaviy va energiyaga boy ixcham krosovver izlayapsizmi?☺️
Sport uslubiga xos,hayratlanarli darajadagi keng interyer, hamyonbop narxlarda ko'ngilochar hamda xavfsizlik bo'yicha ilg'or texnologiyalarni taklif etadi.😎
-------------------------------------------------------
Chevrolet Tracker - стильный и просторный внутри.
Ищете компактный кроссовер , такой же стильный и энергичный ̆, как и вы?😊
Предлагая спортивное исполнение, удивительно просторный интерьер и доступные передовые технологии безопасности и развлечений.😎
#chevrolet#tracker#findnewroads#chevroletuzbekistan
.
You can log and track the phone locations of your family and friends in complete privacy, using your Nextcloud server.
To do this you need to install the Nextcloud PhoneTrack App on your Nextcloud server, and the Android PhoneTrack App on every DeGoogled phone you want to track.
The F-Droid version is old and buggy.
To get the newer Dev Android version, you:
1. Go to the PhoneTrack Dev GitLab page, scroll down and click the "APK Direct Download" link
2. At top "Pipeline" option, click the Download arrow and select "AssembleDevDebug:archive"
3. This downloads a zip file. Extract the zip and install the APK.
CONNECT ALL PHONES AND TRACK
4. On Nextcloud create a dedicated account for PhoneTracking.
5. Create a PhoneTrack "Session" in the Nextcloud PhoneTrack app.
6. Sign each phone into the Nextcloud PhoneTrack account, and on the phone, add a "PhoneTrack log job" to the Session on Nextcloud.
⚡️@LinuxTechIndex
#PhoneTrack#Tracker#Nextcloud