@ru_python

Страница 5768 из 9768
Aragaer
28.06.2018
08:09:23
def run_forever(self): self._loop.create_task(self.start_server()) self._loop.run_forever()

и это работает

и там в accept_client создаются новые таски и они автоматически стартуют

ахха, не ensure_future, а create_task

Google
Aragaer
28.06.2018
08:13:43
вот в него передаешь корутину и она ставится в очередь на выполнение и будет выполняться сразу, как есть работающий луп

Vladimir
28.06.2018
08:15:14
хм, а заработало, ща допилю проверю, спасибо))

с create_task

а вот create_task, он получается только одну таску принимает, ему пачку нельзя сразу дать или через цикл просто создать?

Alexander
28.06.2018
08:26:57
а я на любую задачу создаю новый threading.Thread. По сути сотнями. Зря я так делаю да?

Roman
28.06.2018
08:44:14
а вот те кто пишет на asyncio: как вы мониторите упавшие таски/рестартуете их?

Sergey
28.06.2018
08:50:03
как обычную обработку исключения

Roman
28.06.2018
08:51:00
Sergey
28.06.2018
08:52:22
а почему нет?

Tishka17
28.06.2018
08:53:56
О. 3.7 зарелизили

Stanislav
28.06.2018
08:54:11
Tishka17
28.06.2018
08:54:22
http://www.opennet.ru/opennews/art.shtml?num=48859

Не Глеб
28.06.2018
08:55:53
Google
Не Глеб
28.06.2018
08:56:10


Stanislav
28.06.2018
08:56:46
Найс

Николай
28.06.2018
08:57:17
?

Nikolay
28.06.2018
08:57:35
с каждой новой версией питона Зарт все глубже осознает устарелость своих взглядов

впрочем, asyncio быстрее все равно вряд ли стал

Tishka17
28.06.2018
08:57:58
Теперь ждём ещё 5 лет появления в centos

Roman
28.06.2018
08:58:04
а почему нет?
потому что если что-то не предусмотрел - всё, привет. и если мы в корутине идем во внешний сервис(а он недоступен, например) и надо реализовать повторные попытки по определенному закону, то как быть? тупо спать в корутине?

Roman
28.06.2018
08:59:03
спать - норм, до тех пор, пока спишь асинхронно :)
добавь сюда таймауты на операции и у тебя наступит счастье

Nikolay
28.06.2018
08:59:16
Nikolay
28.06.2018
08:59:19
Sergey
28.06.2018
09:00:17
потому что если что-то не предусмотрел - всё, привет. и если мы в корутине идем во внешний сервис(а он недоступен, например) и надо реализовать повторные попытки по определенному закону, то как быть? тупо спать в корутине?
ну для этого существуют брокеры очередей. Это не решается одним лишь языком программирования... Можно в связке с Celery уйти на повтор закинув таск обратно в очередь.

Tishka17
28.06.2018
09:01:22
впрочем, asyncio быстрее все равно вряд ли стал
Говорят "Особенно большой прирост производительности отмечается в модуле asyncio."

Tishka17
28.06.2018
09:02:01
Хз :)

Sergey
28.06.2018
09:02:06
в нормально написанных асинхронных приложениях брокеры очередей не то чтобы очень нужны
От задачи зависит. уйти на повтор - явно задача для брокера очереди.

Nikolay
28.06.2018
09:02:54
От задачи зависит. уйти на повтор - явно задача для брокера очереди.
с чего вдруг? уйти на повтор - это всего лишь задача реестра тасков. Таска лежит в реестре и имеет статус pending до тех пор, пока не выполнится

всю логику по повторам можно сделать легко таймаутами и слипами

Google
Sergey
28.06.2018
09:03:57
с чего вдруг? уйти на повтор - это всего лишь задача реестра тасков. Таска лежит в реестре и имеет статус pending до тех пор, пока не выполнится
А если уходить на повтор надо в нескольких миллионов тасках? Не слишком ли дофига приложенька начнет жрать? Не потеряется ли вся очередь если приложенька рухнет?

Nikolay
28.06.2018
09:05:05
А если уходить на повтор надо в нескольких миллионов тасках? Не слишком ли дофига приложенька начнет жрать? Не потеряется ли вся очередь если приложенька рухнет?
несколько миллионов тасков - это несколько миллионов файловых дескрипторов на сокете надо обрабатывать в одной приложухе? что, боишься, что epoll порвется?

вообще если у тебя такое происходит с питоноприложением - значит, у тебя кривая архитектура по обработке, но дело не в очереди

Sergey
28.06.2018
09:06:06
да не.... просто в случае с Midleware сервачком, можно будет разгребание очереди наладить на куче машин.

Nikolay
28.06.2018
09:06:09
?

Sergey
28.06.2018
09:06:39
Я же говорю, от задачи…

Nikolay
28.06.2018
09:06:53
Я же говорю, от задачи…
ну, если у тебя корнер кейс - тогда да

а в общем случае celery не нужен для asyncio

более того, если у тебя миллионы тасков - то celery тем более не нужен

там надо уже кролика какого-нибудь брать

и пихать туда stomp-json или даже лучше msgpack напрямую

без оверхеда на каждой таске

Nikolay
28.06.2018
09:08:29
Так уже никто не делает

Nikolay
28.06.2018
09:11:04
так делают примерно все

а если нагрузка вырастает еще сильнее - меняют кролика на кафку

но это уже не относится к питону

Roman
28.06.2018
09:13:12
всю логику по повторам можно сделать легко таймаутами и слипами
Но зачем? Альтернатива - это супервизоры. Таска просто рестартует упавших + таймауты на исполнение порожденных тасков

Nikolay
28.06.2018
09:13:56
Но зачем? Альтернатива - это супервизоры. Таска просто рестартует упавших + таймауты на исполнение порожденных тасков
так а чем это отличается-то? у тебя роль супервизора играет родительская корутина, которая по таймауту может рестартить, что угодно

не вижу разницы

Google
Nikolay
28.06.2018
09:14:44
Я про корутину-супервизор.
тогда что "но зачем"? :) если ты согласен

Stanislav
28.06.2018
09:14:50
Nikolay
28.06.2018
09:14:59
html
28.06.2018
09:15:04
Кто то конвектировал питон файлы в ехе? Чем? Питон 3

Nikolay
28.06.2018
09:15:14
без uvloop так вообще

Stanislav
28.06.2018
09:15:27
да
Есть бенчи какие?

Denis
28.06.2018
09:15:46
Ну это ж питон, он в принципе небыстрый

Nikolay
28.06.2018
09:15:56
Есть бенчи какие?
https://github.com/python/asyncio/wiki/Benchmarks

html
28.06.2018
09:15:57
pyinstaller
Там нужно библиотеки все используемые и все?

Nikolay
28.06.2018
09:16:22
Там нужно библиотеки все используемые и все?
честно сказать, не помню. Вроде да, он просто все пакует вместе с интерпретатором

Stanislav
28.06.2018
09:16:24
html
28.06.2018
09:16:34
Спасибо

Roman
28.06.2018
09:16:42
не вижу разницы
Разница где живёт логика рестарта: в супервизоре или самой таске

Nikolay
28.06.2018
09:17:03
чем меньше лишних слоев и проще код - тем лучше

А новее?
ну погугли сам, я сейчас не могу

Stanislav
28.06.2018
09:17:52
Nikolay
28.06.2018
09:17:57
но будь уверен - у го и даже у ноды он по-прежнему сосет

Google
Nikolay
28.06.2018
09:18:21
Понял, спасибо
если найдешь - кинь сюда тоже, пожалуйста

Roman
28.06.2018
09:18:27
Понял, спасибо
https://github.com/vibora-io/benchmarks

Nikolay
28.06.2018
09:19:54
https://github.com/vibora-io/benchmarks
прикольный проектик

откуда взялся?

Roman
28.06.2018
09:20:11
та в этом месяце чувак начал пилить

Roman
28.06.2018
09:20:25
вообще похер, это одна и та же логика
нет. тут не надо думать про корректность внутри самой корутины.

Nikolay
28.06.2018
09:20:27
выборы, выборы, кандидаты...

нет. тут не надо думать про корректность внутри самой корутины.
у тебя логика все равно будет в той корутине, которая под таймаутом

то есть смешения слоев не будет, как ни крути

Stanislav
28.06.2018
09:21:23
https://github.com/vibora-io/benchmarks
Хм, 61к в норм же. Хотя парсинг формы вообще пиздец

Nikolay
28.06.2018
09:22:16
Хм, 61к в норм же. Хотя парсинг формы вообще пиздец
это еще и хеллоуворлд. Ты представь, что будет при запросе в базу, например, или при другой логике на питоне

сразу на порядок меньше

Tishka17
28.06.2018
09:22:27
там надо уже кролика какого-нибудь брать
А что, celery не может из него таски брать?

Nikolay
28.06.2018
09:22:54
А что, celery не может из него таски брать?
может, но celery - это питоновая шняжка, которая будет давать тебе оверхед на каждую таску

Stanislav
28.06.2018
09:23:14
Roman
28.06.2018
09:23:27
у тебя логика все равно будет в той корутине, которая под таймаутом
смотри. когда у тебя логика внутри таска тебе важно не сломать control flow внутри, потому что иначе никаких повторов/рестартов не будет. а все потому что логика задачи решаемой таской смешана с логикой рестарта.

Tishka17
28.06.2018
09:24:04
может, но celery - это питоновая шняжка, которая будет давать тебе оверхед на каждую таску
По скорости? Не это уже вопрос, кто обрабатывает таски, а не через что их передавать

Страница 5768 из 9768