@ru_python

Страница 3191 из 9768
Boojum
13.07.2017
14:48:29
http://pca.st/sysk

Python'ер
13.07.2017
15:30:05
Можно ли в asyncio добавлять задачи на ходу? Если скажем они постепенно поступают...

Python'ер
13.07.2017
15:40:40
да
А как?

Google
Aleksandr
13.07.2017
15:41:02
А как?
asyncio.ensure_future

Alexander
13.07.2017
15:41:44
Для "на ходу" и "поступают" лучше использовать очередь

Aleksandr
13.07.2017
15:42:54
Nikolay
13.07.2017
15:44:11
если один процесс зачем очередь?
Тебе и celery в 2017 не нужен уже

Python'ер
13.07.2017
15:44:27
Для "на ходу" и "поступают" лучше использовать очередь
Хм, а можно же сделать очередь на добавление.

Nikolay
13.07.2017
15:44:37
Очередь куда проще контролировать

Aleksandr
13.07.2017
15:44:53
Alexander
13.07.2017
15:45:53
https://docs.python.org/3/library/asyncio-queue.html

Python'ер
13.07.2017
15:46:29
у тебя задача какая?
Да пока никакая, просто я думал что asyncio.ensure_future нельзя на ходу. Оказалось что можно. Мой вопрос решен, спасибо вам.

Python'ер
13.07.2017
15:48:42
https://docs.python.org/3/library/asyncio-queue.html
О, там можно делать await queue.get(). Интересно...

Nikolay
13.07.2017
15:51:01
О, там можно делать await queue.get(). Интересно...
Есть ещё такая штука, как janus

Позволяет одну очередь использовать и для потоков, и для корутин

Google
Python'ер
13.07.2017
15:54:34
Позволяет одну очередь использовать и для потоков, и для корутин
Это если executor очень захочется использовать?

Aleksandr
13.07.2017
15:55:47
Nikolay
13.07.2017
15:58:56
Это если executor очень захочется использовать?
Это вообще если у тебя потоки и корутины в одном приложении

Python'ер
13.07.2017
16:00:06
Хм, а вот если взять несколько процессов(multiprocessing) и в одном сделать асинхронное принятие запросов, в другом их асинхронную обработку, в третьем асинхронные запросы к базе данных, то это можно это считать чем-то нормальным?

Aleksandr
13.07.2017
16:08:04
Ты изобретешь эрланг
в эрланге используется модель акторов, в одном процессе и одном потоке, это ничего общего с мультипроцессингом не имеет

Nikolay
13.07.2017
16:08:53
если не смущает оверхед и синхронизация между ними то можно
Да нету там особого оверхеда. Синхронизация да, не очень тривиальная

Python'ер
13.07.2017
16:09:58
Просто таким образом задачи внутри одного процесса примерно равны между собой. По идее это же хорошо?

Aleksandr
13.07.2017
16:11:31
Просто таким образом задачи внутри одного процесса примерно равны между собой. По идее это же хорошо?
ну ты разносишь задачи по процессам, зачем? ведь можно же делать все в одном

Nikolay
13.07.2017
16:13:05
Aleksandr
13.07.2017
16:13:36
Затем, что для некоторых задач мешает gil
это у тебя мешает, человек пишет про задачи которым не мешает

TISAZE
13.07.2017
16:14:15
Можно ли на питоне писать под мед оборудование ?

Nikolay
13.07.2017
16:14:33
это у тебя мешает, человек пишет про задачи которым не мешает
Человек ни слова не написал про задачи, расслабься

Google
Aleksandr
13.07.2017
16:15:34
Человек ни слова не написал про задачи, расслабься
Хм, а вот если взять несколько процессов(multiprocessing) и в одном сделать асинхронное принятие запросов, в другом их асинхронную обработку, в третьем асинхронные запросы к базе данных, то это можно это считать чем-то нормальным? да, ни слова

Nik
13.07.2017
16:15:58
А зачем?

Artem
13.07.2017
16:16:04
Слово "обработка" может означать что угодно :)

Aleksandr
13.07.2017
16:20:47
Там модель акторов, да, но про один процесс и поток неправда
конечно, неправда. модель акторов - это lock-free механизм, а треды они ровно наоборот

Nikolay
13.07.2017
16:22:09
конечно, неправда. модель акторов - это lock-free механизм, а треды они ровно наоборот
Ты сейчас написал "помидор - это помидор, а трактор ровно наоборот"

Nikolay
13.07.2017
16:22:36
Локфри как раз сделан для того, чтобы треды проще писать было

TISAZE
13.07.2017
16:25:13
А кто тебе запретит?
Есть заказ от фирмы, написать *модуль* для приборов жизне обеспечения, чтобы при определенной последовательности нажатия кнопок система реагировала соответствующим образом. Так же есть опция для экстренной остановки. Вот я и думаю, нахера закладывать такой код???

Artem
13.07.2017
16:26:41
Nikolay
13.07.2017
16:27:08
В противном случае высокоуровневый язык спасает от многих выстрелов в ногу

Aleksandr
13.07.2017
16:28:38
ну вообще действительно неясно, что ты имел в виду.
то что они работают в одном треде и позволяют создавать легковесные процессы быстрые (как раз за счет отказа от блокировок) которые могут решать и конкурентные задачи и параллельные, это уже берет на себя виртуальная машина. у тебя при этом один тред и тебе не нужно "писать треды"

TISAZE
13.07.2017
16:29:00
Ну, если ты уверен, что на сях напишешь код, который никогда не упадёт, и покроешь его тестами - то пиши на сях
Суть в том, что это как то палевно все... хз... может новая версия эфтаназии... только вот что произойдет если кто то удаленно получит доступ к системе.

Admin
ERROR: S client not available

Google
Artem
13.07.2017
16:32:14
если ты имеешь в виду, что ты не управляешь вручную, что в каком треде запускать - то да

Aleksandr
13.07.2017
16:32:33
отказ от блокировок как раз нужен для упрощения параллелизма - разбиения по тредам в том числе
но это доступа к этому механизму у тебя как у разработчика как правило нет, равно как и в го. в этом и магия и прелесть языка. твой код работает в одном треде, а задачи шедулятся без тебя

Artem
13.07.2017
16:32:33
просто "все работает в одном треде" это совсем неправильная фраза)

Роман
13.07.2017
16:36:25
Добрый вечер, господа знатоки. Возникла дилемма у меня, подрывающая всю уверенность в себе — как лучше создавать коннект к бд в веб-приложухе: отдельно на каждый запрос или единожды при старте приложения?

Роман
13.07.2017
16:37:02
постгрес

Какая бд?
бд вообще взята для примера, вопрос затрагивает сетевые подключения в общем

Dmitry
13.07.2017
16:38:05
Господа, можно ли украсть чуточку вашего внимания, может кто поделится опытом? У меня есть жутчайшее наследие тестовой инфраструктуры на питоне, с дичашим переплетением файлов и кучей импортов. Разобраться, даже с ручкйо и карандашом весьма и весьм сложно (многие объекты, модели, фикстуры, кочуют из файла в файл). Может кто знает, существуют ли анализаторы кода, визуальные отладчики, которые бы наглядно рисовали блок схемы того, что происходит в данный момент в тесте. Откуда берутся переменные, откуда файлы настроек, как это все видоизменяется. Я гуглил, но кроме примитивных инструментов ничего не нашел. Спасибо!

Semyon
13.07.2017
16:38:06
Вопрос - можно ли как то красиво заменить строку в файле ? Зная её номер. И без чтения всего файла в память.

Nikolay
13.07.2017
16:38:20
бд вообще взята для примера, вопрос затрагивает сетевые подключения в общем
В алхимии это все от тебя спрятано, например. Там есть объект сессии в тредлокале, который сам решает, когда создавать новый коннекшен

Semyon
13.07.2017
16:38:58
Dmitry
13.07.2017
16:38:59
Objgraph, cprofile+runsnakerun
побежал гуглить)

Semyon
13.07.2017
16:39:36
В баше sed'ом
Вот блин, а нормального python way нет?

Роман
13.07.2017
16:40:20
В алхимии это все от тебя спрятано, например. Там есть объект сессии в тредлокале, который сам решает, когда создавать новый коннекшен
ну про алхимию понял и знал, но меня именно интресует, как это стоит делать, если сам пишешь взаимодействие с бд.

Nikolay
13.07.2017
16:41:46
Вот блин, а нормального python way нет?
Без временного файла или чтения в память не очень тривиально

ну про алхимию понял и знал, но меня именно интресует, как это стоит делать, если сам пишешь взаимодействие с бд.
Я бы сказал, если база не умеет в пайплайнинг - то коннектить заново каждый раз. А вообще лучше всего посмотреть, как сделано в asyncpg

Semyon
13.07.2017
16:43:21
Без временного файла или чтения в память не очень тривиально
Да, но как то не красиво читать в память файлы если они с 500 метров например

Google

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