@ru_python

Страница 8133 из 9768
Philipp
18.02.2019
11:02:49
Tishka17
18.02.2019
11:02:58
Но попахивает такой код, конечно

Google
Eldar
18.02.2019
11:03:03
А в свежих версиях торнадо можно комбинировать gen.coroutine и async await

Sergey❄️
18.02.2019
11:04:14
У тебя не будет ровного прямоугольника никогда

https://stackoverflow.com/questions/43000305/opencv-canny-edge-detection-is-not-working-properly-on-ideal-square Можешь прочитать сам

Maxim
18.02.2019
11:07:42
Это понятно, что можно так обойти проблему... Меня язык интересует.
чтобы изменить значение глобальной переменной внутри функции, тебе нужно указывать global offer_no внутри функции offer_no = None def wait_for_offer(j): global offer_no if ....: offer_no = j['data'] return True else: return False wait_for_notification(connection, wait_for_offer) print('---- OFFER RECEIVED! %s ----' % offer_no)

any
18.02.2019
11:07:48
Sergey❄️
18.02.2019
11:08:18
То что нужно ? Спасибо
Ты пытался понять почему, или тебе требуется ровная фигура?)

any
18.02.2019
11:08:56
Ты пытался понять почему, или тебе требуется ровная фигура?)
Сначала нужна была фигура, потом я озадачился)

Terminator
18.02.2019
11:09:41
Oleg Cherdakov будет жить. Поприветствуем!

Tishka17
18.02.2019
11:09:59
Вообще, шарить что-то между функциями неявно - так себе идея

Ilia
18.02.2019
11:10:26
чтобы изменить значение глобальной переменной внутри функции, тебе нужно указывать global offer_no внутри функции offer_no = None def wait_for_offer(j): global offer_no if ....: offer_no = j['data'] return True else: return False wait_for_notification(connection, wait_for_offer) print('---- OFFER RECEIVED! %s ----' % offer_no)
Я именно так и сделал, это всё понятно. Но так не очень хорошо, одно глобальное гнездо иметь. Хочется поменять переменную в фрейме , который находится два фрейма вверх, в функции, вызывающей фукнцию, которая вызывает данную фукнцию. Ну или ещё выше, но не глобальную переменную. Как специальная переменная в КоммонЛисп чтобы было.

Google
Ilia
18.02.2019
11:11:47
nonlocal
Уже пробую, спасибо.

nonlocal
Получилось, работает. Спасибо.

Ilia
18.02.2019
11:19:55
Гы, зачем там класс-то?

Maxim robox
18.02.2019
11:20:12
Гы, зачем там класс-то?
Это не так уродливо, как global или nonlocal.

Ilia
18.02.2019
11:20:14
Нет, такое -- точно не хотел.

Это не так уродливо, как global или nonlocal.
Не, не соглашусь, это ЕЩЁ БОЛЕЕ УРОДЛИВО!

Ну я идею понял, спасибо...

Maxim robox
18.02.2019
11:22:48
Не, не соглашусь, это ЕЩЁ БОЛЕЕ УРОДЛИВО!
Ты вроде жаловался, что хранить приходится в глобальных переменных. И это разумная жалоба. Как по мне, лучше положить её в класс.

Tishka17
18.02.2019
11:22:50
В.
18.02.2019
11:23:35
Ребят, мне нужно чтобы скрипт, отдельный от основного, постоянно анализировал и обновлял данные таблицы в базе данных. Но сталкиваюсь с проблемой, что он начинает конкретно грузить процессор, как избежать этой нагрузки? Выносить в отдельный сервер его?

Tishka17
18.02.2019
11:25:05
Можешь с nice поиграться или cpulimit

Ilia
18.02.2019
11:25:29
Можешь с nice поиграться или cpulimit
Найс -- это приоритет, загрузку CPU он не снимет.

Tishka17
18.02.2019
11:25:41
Ну да

Google
Tishka17
18.02.2019
11:25:48
Просто она перестанет мешать

Ilia
18.02.2019
11:26:00
Ну да
Я просто как бы человеку поясняю...

Tishka17
18.02.2019
11:26:34
Или проблема в том, что скрипт не делает нихуя и жрет проц?

В.
18.02.2019
11:28:16
Или проблема в том, что скрипт не делает нихуя и жрет проц?
Он по очереди обновляет строки в таблице, делает это постоянно.

Tishka17
18.02.2019
11:28:26
Так

В.
18.02.2019
11:29:10
Таблица правда mysql, но все же 2 ядра на полную из-за него нагружены

+ процесс mysqld тоже кокрентно грузит

Tishka17
18.02.2019
11:30:55
А сколько времени ему надо на один проход?

Много записей?

Если не успевает, то не успевает. Возможно, ты вообще что-то не то с данными делаешь

В.
18.02.2019
11:32:38
Записи обновляются каждую секунду по 10 шт основным скриптом инстертом, а этот их вытаскивает, обновляет нужные данные в нужных таблицах и удаляет.

Tishka17
18.02.2019
11:33:41
так, то есть во0-первых ты юзаешь БД как очередь. попробуй rabbitmq например. Он расчитан на постоянную вставку и удаление

во-вторых, почему сразу нельзя нормально данные положить, а делаем через очередь?

В.
18.02.2019
11:34:52
потому что у меня лочится таблица и тормозит скрипт, мне нужно постоянно обновлять одни и те же поля, без очереди не вариант вообще

Tishka17
18.02.2019
11:35:29
“постоянно обновлять одни и те же поля” - звучит как проблема

что за поля?

почему лочится таблица? должна запись лочиться

Jentry
18.02.2019
11:36:39
В.
18.02.2019
11:37:11
например, увеличивать количество выполнений задания на +1, поле одно запросов до 100 в секунду доходит,постоянно ловил lock wait timeout exceeded try restarting transaction

Google
Tishka17
18.02.2019
11:37:36
ух, хранить инкрементирующийся счетчик в реляционной БД - напряжно

@jerunman какую БД взять для хранения счетчиков?

Jentry
18.02.2019
11:38:06
redis?

Tishka17
18.02.2019
11:38:23
а если надежнее?

Admin
ERROR: S client not available

Jentry
18.02.2019
11:38:38
redis + настроенный durability

В.
18.02.2019
11:38:58
у меня не только счетчики, там и балансы обновляются и записываются юзеры, выполнившие задания

Tishka17
18.02.2019
11:39:22
похоже, тебе бы nosql

может касандра?

Jentry
18.02.2019
11:40:10
у меня не только счетчики, там и балансы обновляются и записываются юзеры, выполнившие задания
ну так разные данные в разных базах можно хранить, а раз в некоторое время скидывать состояние в надежное хранилище (sql)

лойс за кассандру

Tishka17
18.02.2019
11:41:03
с мускулум я могу тебе только предложить rabiitmq + в памяти агрегировать операции, относящиееся к одной записи

В.
18.02.2019
11:42:49
спасибо, пошел изучать

Jentry
18.02.2019
11:44:29
спасибо, пошел изучать
начни с того, почему у тебя таблица лочится, как уже сказали выше - должны лочиться записи, в postgres у нас есть select for update, полагаю у тебя тоже

Tishka17
18.02.2019
11:44:48
в мускуле есть select for update

В.
18.02.2019
11:45:00
скорее запись лочится, я просто не так выразился

lock wait timeout exceeded try restarting transaction

select for update разве поможет решить проблему?

он наоборот лочит запись и создает проблему для меня

lost
18.02.2019
11:48:59
значит ты что-то делаешь не так

Google
Tishka17
18.02.2019
11:54:59
если у тебя таймаут транзакции - проверяй в одной ли последовательности ты делаешь записи

может там дэдлок

хз умеет ли мускул их детектить

Jentry
18.02.2019
11:55:37
он наоборот лочит запись и создает проблему для меня
если ты не залочишь запись, у тебя будет race condition на стандартном уровне изоляции

Terminator
18.02.2019
11:57:01
@stasgra будет жить. Поприветствуем!

lost
18.02.2019
12:07:00
может там дэдлок
если бы был дедлок был бы и эксепшн конкретный по дедлоку, просто долгое ожидание на лок - скорее всего есть какие-то долгие транзакции в бд

детектить и отстреливать умеет из коробки

Tishka17
18.02.2019
12:07:28
ну ок, я же сказал - хз умеет ли мускул дэдлоки детектить

значит умеет

тогда тупо слишком много записей

не успевает

lost
18.02.2019
12:08:15
не обязательно, с большой вероятностью это может быть криворукость архитектора

Tishka17
18.02.2019
12:08:37
ну да, может банально не быть индекса и он полным перебором ищет запись для обновления

или ещё какая-нибудь дичь

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