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 слични објави

Пребарај: #urbanalytics

当前筛选 #urbanalytics清除筛选
О городах и данных

@datainthecity · Post #3 · 04.09.2020 г., 19:38

Начну с одного из своих любимых примеров использования городских данных из столицы Шотландии, Эдинбурга. Каждый август там проходит международный фестиваль Edinburgh Festival Fringe, на который приезжают тысячи туристов и, конечно, стандартное расписание транспорта этого относительно небольшого города не справляется с такой нагрузкой. Чтобы подстроить работу автобусов и поездов ( многие туристы ночуют вне Эдинбурга) под спрос, городские власти совместно с департаментом транспорта и университетом Эдинбурга, собирают статистику с учреждений-участников фестиваля о времени проведения их мероприятий и количестве зарегистрировавшихся, и, исходя из этого, определяют в какие часы, какое количество дополнительных рейсов и куда должно быть направлено. Говорят, что регулируют даже светофоры. Система пока не настроена, чтобы работать реал-тайм, поэтому решения принимаются заранее на основе ожидаемых цифр и исторических данных. В целом, это понятный и эффективный пример того, как данные помогают избежать перегруженности транспорта во время массовых мероприятий. Может и нашим властям попробовать вместо того, чтобы закрывать метро, подстраивать работу транспорта под спрос? #urbandata#urbanalytics#scotland#smartcity