@ru_python

Страница 8029 из 9768
Alex
07.02.2019
11:28:24
Tishka17
07.02.2019
11:29:36
А он может сигнал кинуть не одному процессу, а 10 сразу?

Cykooz
07.02.2019
11:30:11
Ну есть просто задачи, которые должны исполняться в отдельных контейнерах, но при этом ансамблироваться должно сервером на aiohttp. Вот и интересуюсь. Просто докер внутри докера даже звучит по костыльному, матрешка получается
Я такую "матрёшку" использую для сборки проектов. Проекты однотипные, добавляют только кастомизации к основному ядру. А вот процедура сборки не банальная и иногда меняется. Что-бы скрипт для сборки не копи-пастить в репазиторий каждого проекта, я просто запилил докер-образ, внутри которого зашиты все скрипты сборки, которые в результате создают докер-образы для проекта и заливают их в приватный докер-хаб. Без "матрёшки" такое не сделать конечно - я, как тут писали выше, просто монтирую в сборочный контейнер сокет от хостового докера.

Tishka17
07.02.2019
11:30:23
Вообще, с ним там суметь ещё надо скрестить. Не помню кейса, но там вроде на 100% все равно не решало

Google
Alex
07.02.2019
11:34:03
А он может сигнал кинуть не одному процессу, а 10 сразу?
да, может. я согласен, что logrotate имеет особености и лучше уже systemd использовать.

Terminator
07.02.2019
11:35:16
@linkolnpark будет жить. Поприветствуем!

В.
07.02.2019
11:36:28
Можно ли с одним ядром ускорить процесс парсинга, запараллелив процессы?

В.
07.02.2019
11:36:57
нет
а другим способом?

многопоточность?

или тоже нет?

Alex
07.02.2019
11:37:09
ты ведь понимашь разницу между вытесняющей многозадачностью и параллелизмом

видимо нет

и в логику тоже не умеешь

В.
07.02.2019
11:37:39
вытесняющая многозадачность поясни пожалуйста

Alex
07.02.2019
11:37:45
погугли пожалуйста

Google
В.
07.02.2019
11:38:34
это асинхронность?

Tishka17
07.02.2019
11:38:48
Можно ли с одним ядром ускорить процесс парсинга, запараллелив процессы?
Смотря что у тебя тупит - сам парсинг или скачивание страниц

это асинхронность?
Просто погугли

Alex
07.02.2019
11:40:16
Виталий ты с одним ядром ничего не распараллелишь, вот совсем. Параллелизм физически невозможен когда у тебя одно ядро.

В.
07.02.2019
11:40:18
у меня бот тупит, в общем когда один юзер запросил инфу - ему 3-4 секунды собирается инфа, а в это время другие команды стоят

Alex
07.02.2019
11:40:42
Ну так это же не совсем "парсинг", ты согласен?

Tishka17
07.02.2019
11:40:53
Так вопрос не про ускорение, а чтобы другим не мешать?

Alex
07.02.2019
11:41:00
И вопрос не про ускорение ага

В.
07.02.2019
11:41:18
да, ну сори за нубскую формулировку

нужно как-то локализовать его процесс

Alex
07.02.2019
11:41:40
Делай бота асинхронным, выноси парсинг в очередь и обрабатывай отдельным потоком.

В.
07.02.2019
11:42:00
вот, про потоки я и спрашивал

одного ядра для многопоточности достаточно?

Alex
07.02.2019
11:42:24
вот, про потоки я и спрашивал
в твоем случае это никакого отношения к параллелизму не имеет, уловил?

В.
07.02.2019
11:42:30
да, я понял

Tishka17
07.02.2019
11:42:43
Да. Но работать будут по очереди. Возвращаемся к Гуглу и вытесняющей многозадачности

В.
07.02.2019
11:43:15
Делай бота асинхронным, выноси парсинг в очередь и обрабатывай отдельным потоком.
он и так async, но у меня видимо неправильно скрипт построен

сейчас будут разбираться

Tishka17
07.02.2019
11:44:02
Ну если у тебя реально cpu-bound задача и ты там в корутине много делаешь, то asyncio тебе не поможет

Alex
07.02.2019
11:45:03
Ну если у тебя реально cpu-bound задача и ты там в корутине много делаешь, то asyncio тебе не поможет
ну дык для этого и нужно вынести в отдельный поток \ процесс. он просто ставит задачу в очередь и ждет ее завершения в корутине, пока бот обрабатывает другие сообщения.

Google
Tishka17
07.02.2019
11:45:19
Угу

В.
07.02.2019
11:45:34
Спасибо, пойду копать

Alex
07.02.2019
11:46:35
Ну если у тебя реально cpu-bound задача и ты там в корутине много делаешь, то asyncio тебе не поможет
в asyncio кстати есть уже из коробки loop.run_in_executor(), ничего изобретать не нужно

LighteR
07.02.2019
11:51:14
в asyncio кстати есть уже из коробки loop.run_in_executor(), ничего изобретать не нужно
Ну это полумера. Это скорее решение для кейсов когда надо вызвать блокирующий (но не cpu bound) код

ShadoWalkeR
07.02.2019
11:52:06
Господа, в питоновском модуле redis надо закрывать коннект при выходе из функции? То есть ветка finally (портирую код с прототипа на руби) должна как то так выглядеть или можно забить? Сам питон встроен в сишное приложение, поэтому лучше перебдеть def redis_store_duri(key, duri, lifetime = 3600): try: r = redis.Redis(host='localhost', port=6379, db=3) if not r.exists(key): r.setex(key, lifetime, duri) else: self.xwarn("Key " + key + " exists. Skip saving DURI:" + duri) except Exception: self.xerr("Cant store call connection in redis") return -255 finally: r.disconnect! if r.connected?

Jentry
07.02.2019
11:53:49
в asyncio кстати есть уже из коробки loop.run_in_executor(), ничего изобретать не нужно
а эта функция yield’ит текущее выполнение корутины, позволяя перешедулиться на другие?

Rostyk
07.02.2019
11:54:05
Где юзают python в вебе?

Denis
07.02.2019
11:54:34
Где юзают python в вебе?
На бэке в основном

Alex
07.02.2019
11:54:42
Ну это полумера. Это скорее решение для кейсов когда надо вызвать блокирующий (но не cpu bound) код
почему-это вдруг? никто тебе не мешает запустить cpu-bound задачу в кастомном executor'е например в ProcessPoolExecutor

Rostyk
07.02.2019
11:54:58
Denis
07.02.2019
11:55:03
Alex
07.02.2019
11:55:05
php ничего не заменит, лучше пишите на php

LighteR
07.02.2019
11:55:51
почему-это вдруг? никто тебе не мешает запустить cpu-bound задачу в кастомном executor'е например в ProcessPoolExecutor
loop.set_default_executor(executor)¶ Set executor as the default executor used by run_in_executor(). executor should be an instance of ThreadPoolExecutor. Deprecated since version 3.7: Using an executor that is not an instance of ThreadPoolExecutor is deprecated and will trigger an error in Python 3.9. executor must be an instance of concurrent.futures.ThreadPoolExecutor. Я вот правда не уверен распространяется ли это на аргумент в run_in_executor. Если нет, то согласен с тобой

Tishka17
07.02.2019
11:56:09
Ну это полумера. Это скорее решение для кейсов когда надо вызвать блокирующий (но не cpu bound) код
Да ладно. Для cpu-bound поможет, если задач не слишком много. Если много - нужно ядра добавлять все равно. И делать вычисления в процессах тогда уж

Alex
07.02.2019
11:56:38
видимо запретили заменять дефолтный executor не ThreadPool чтобы не сломать другой код, который так же его использует.

Jentry
07.02.2019
11:57:22
LighteR
07.02.2019
11:57:44
Google
Alex
07.02.2019
11:58:12
если использовать ThreadPoolExecutor, то будет лочиться луп в момент захвата gil воркерами в executor'е
ну с учетом контекста, что у ТС одно ядро, то ему как-то все равно.

а так-то да

LighteR
07.02.2019
12:02:45
Одно ядро же было в задаче
ну конкретно в этом кейсе, да, существенной разницы быть не должно

Николай
07.02.2019
12:07:02
подскажите пожалайсту. переход с win на linux. все поставил скопировал программу запускаю а мне пишет нет модуля (from app.app import armo) на это строку ругается

Николай
07.02.2019
12:07:59
я так понимаю обращение не через точку?

/app/app.py

Alex
07.02.2019
12:08:18
я так понимаю обращение не через точку?
интересно что же заставило тебя так думать?

я сползаю под кресло...

?

Николай
07.02.2019
12:08:52
ну первое что в голову всбрело. в винде норм же

pavel
07.02.2019
12:09:06
для линукса это известная проблема в питоне

Николай
07.02.2019
12:09:30
мг

Alex
07.02.2019
12:09:33
ну первое что в голову всбрело. в винде норм же
наша высококвалифицированная команда экстрасенсов уже выехала по вашему адресу, ожидайте.

Николай
07.02.2019
12:09:36
и форматируется диск

Alex
07.02.2019
12:09:46
ты ведь должен знать что это уже давно не работает, правда?

pavel
07.02.2019
12:09:46
черт

Google
pavel
07.02.2019
12:09:48
не прокатило

Alex
07.02.2019
12:10:22
--no-preserve-root забыл.

Maxim robox
07.02.2019
12:10:26
Evilenzo
07.02.2019
12:10:31
я чуть не поперхнулся. На винде что-то делать с кодом проще, чем на линухе??
В данном случае да. В манжаре предустоновлена своя версия питона, которую невозможно снести и поставить свою, т.к. на ней написана часть софта. А на эту версию нихрена нет и нужно ебаться с окружениями и прочим говном, что мне не нужно

pavel
07.02.2019
12:10:40
зануды

Alex
07.02.2019
12:10:53
Господа, что думаете по поводу микросервисов?

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