@ru_python

Страница 9758 из 9768
Shieldy
31.07.2019
15:15:18
Добро пожаловать, @BeelineAl! Не забудь ознакомиться с правилами чата. https://t.me/ru_python/802295

Mename
31.07.2019
15:15:33
Tishka17
31.07.2019
15:17:25
эм сигнал отправляется процессу

B
31.07.2019
15:17:34
Thread'у так же отправляются SIGINT SIGTERM SIGKILL?
Это вопрос больше не функциональности питона, а реализации потоков. Поищите по ключевому слову POSIX threads.

Google
Tishka17
31.07.2019
15:17:39
на врем яобработки сигнала, насколько я помню, все треды останавливаются

Mename
31.07.2019
15:18:03
Это вопрос больше не функциональности питона, а реализации потоков. Поищите по ключевому слову POSIX threads.
На сколько я знаю, Thread это не совсем поток, а какая-то питоновская приколюха

на врем яобработки сигнала, насколько я помню, все треды останавливаются
Так вот мне нужно чтобы каждый поток выполнял свою подготовку к шатдауну

Tishka17
31.07.2019
15:20:17
Так вот мне нужно чтобы каждый поток выполнял свою подготовку к шатдауну
Выставляешь глобальный флаг, всем говоришь "эй, завершайтесь"

Mename
31.07.2019
15:20:59
Shieldy
31.07.2019
15:21:06
Добро пожаловать, @test_73yvs7sb2! Не забудь ознакомиться с правилами чата. https://t.me/ru_python/802295

Mename
31.07.2019
15:21:14
Один/два их них это FUSE

https://github.com/fusepy/fusepy

Tishka17
31.07.2019
15:21:59
Ух

Сурово

Для всех потоков так не выйдет
Ну короче, по сигналу сам себе говоришь что надо завершиться и завершашь всё нормальным способом

Mename
31.07.2019
15:24:29
Посмотрим что можно сделать

B
31.07.2019
15:25:37
с промежуточным сервером, статистикой из игр, которая кидается на амазон, планшетом, который отправляет команды. я бы ее вообще переписал, но других тасков хватает. когда плюсовому программисту дают таск написать софт на абсолютно чуждом для тебя языке. где хотя-бы даже по синтаксису разница космическая.
В общем, картина видится такая. Обработкой гет запросов занимается один тред. Когда удаленные сервера не работают (порт не слушается) контрольный сервер сразу получает TCP reset, что приводит к исключению, завершению работы get_status и отдаче пустого ответа. Когда появляется удаленный сервер, возможно он отвечает на запрос контрольного сервера довольно долго (какое там тело ответа кстати?), в результате исполнение блокируется. GIL при этом отпустится, но процессор будет занят интерпретатором питона, так думаю. Соответственно в профайлере должно на первом месте быть ожидание ввода -вывода или чтение из сокета. Долгие синхронные запросы + один поток = наблюдаемая ситуация.

Google
B
31.07.2019
15:29:07
В общем, картина видится такая. Обработкой гет запросов занимается один тред. Когда удаленные сервера не работают (порт не слушается) контрольный сервер сразу получает TCP reset, что приводит к исключению, завершению работы get_status и отдаче пустого ответа. Когда появляется удаленный сервер, возможно он отвечает на запрос контрольного сервера довольно долго (какое там тело ответа кстати?), в результате исполнение блокируется. GIL при этом отпустится, но процессор будет занят интерпретатором питона, так думаю. Соответственно в профайлере должно на первом месте быть ожидание ввода -вывода или чтение из сокета. Долгие синхронные запросы + один поток = наблюдаемая ситуация.
Если надо хоть как-то исправить прямо сейчас, дайте больше тредов серверу на случай конкуррентных запросов и используйте треды или асинхронность для опроса серверов.

Ананас
31.07.2019
15:29:26
тела ответа нет, он смотрит только на код ответа

B
31.07.2019
15:29:56
тела ответа нет, он смотрит только на код ответа
А пинги между серверами большие?

Ананас
31.07.2019
15:30:13
нет, 5-10 мсек

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

Alex
31.07.2019
15:33:19
Как ни странно, мой запрос почему-то ничего не возвращает...

mydbc.execute("Select * from user where id=%s",(int(id1),)) check_val=0 """check for show message start ot show main menu/// if =1 than show all message, else 0 show menu""" for row in mydbc.fetchall(): print(row[0])

Ананас
31.07.2019
15:33:50




Alex
31.07.2019
15:34:49
отдельные подпроцессы

наследники остались

Маришка
31.07.2019
15:35:21
Опять люди путают теплое с маслом

Маришка
31.07.2019
15:35:46
Жсон и строковое представление словаря не одно и тоже. Из мелочей

B
31.07.2019
15:40:55
Тут четыре процесса интерпретатора питона, уверены что процессор потребляет именно код сервера? В принципе, если другого кода немного, можно перенести как есть на flask. Изменится только код main и код эндпоинта. У flask более очевидные способы задать мультитрединг и т.д.

Tishka17
31.07.2019
15:41:10
на питоне?

Alex
31.07.2019
15:41:12
а такой id в базе есть?
нет, а как можно получить сведения мол запрос тру или нет

Tishka17
31.07.2019
15:41:25
Google
Timur
31.07.2019
15:41:29
на питоне?
Там про общие концепции. Можно и на питоне :)

Tishka17
31.07.2019
15:41:31
можешь посчитать сколько вывел

а вообще с курсоре есть число найденных записей

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

омг

Alex
31.07.2019
15:44:01
sok=mydbc.fetchall()

ну смотри

я в sok получаю что-либо?

нашел пример

import pymysql pymysql.install_as_MySQLdb() import MySQLdb db= MySQLdb.connect("hostname", "username", "password", "database_name") cursor= db.cursor() number_of_rows= cursor.execute("SELECT * FROM Table_name) # enter the table name

Alex
31.07.2019
15:47:16
mydbc.execute("Select * from user where `id`=%s",(int(id1),)) check_val=0 sok=mydbc.fetchall() """check for show message start ot show main menu/// if =1 than show all message, else 0 show menu""" if sok is None: check_val=1

ну получается что сок вообще пустой

или тип того

он не нон

Tishka17
31.07.2019
15:48:17
да не None будет

пустой спислк

Alex
31.07.2019
15:48:26
empty

юзать?

Google
Tishka17
31.07.2019
15:49:13
ты в курсе что такое пустой список?

Alex
31.07.2019
15:49:20
сработало

спс.)

if sok not:

не подумал что он может возвращать список, думал должен выбрасывать ошибку если не то

)

*пустой

Tishka17
31.07.2019
15:53:38
ну почему же. "найдено 0 записей" ничем особо не отличаеся от "найдено 1000 зписей"

а вот "не смог выполнить запрос" - это уже другое

Alex
31.07.2019
15:55:53
commit() что дает этот метод?

Sasha
31.07.2019
15:56:19
Коммитит)

Alex
31.07.2019
15:56:30
для бд

Nick
31.07.2019
15:56:30
commit() что дает этот метод?
Применяет все изменения

Sasha
31.07.2019
15:57:11
Почитайте про транзакции в бд, это в целом общие знания, которые будут полезны новичку

Alex
31.07.2019
15:59:17
Я ранее работал с бд, теперь смотрю как это реализовано с питоном

Shieldy
31.07.2019
16:00:27
Добро пожаловать, @aka_alexey! Не забудь ознакомиться с правилами чата. https://t.me/ru_python/802295

Tishka17
31.07.2019
16:07:15
Есть тут датасаентологи? Как мне за минимум кода кластеризовать массив 240-размерных векторов?

Андрей
31.07.2019
16:08:22


Tishka17
31.07.2019
16:08:48
да, хочется взять готовый алгоритм и посомтреть что выыйдет

Google
Дмитрий
31.07.2019
16:11:42
ну условно

Tishka17
31.07.2019
16:11:44
угу

а как оценивать результат?

scikit уже нагуглил

Дмитрий
31.07.2019
16:12:18
можно считать всякие метрики кластерные, типа плотности

они тоже гуглятся

Tishka17
31.07.2019
16:12:44
ну меня скорее интересует что кластеры не очень соприкасаются

ну короче, что это реально кластеры, а просто порезали круг пополам

Дмитрий
31.07.2019
16:13:32
ну тогда посчитай расстояние (среднее\максимальное) от центра каждого кластера до его вершин и сравни с попарным расстоянием между центрами хз

я на коленке так оценивал

его вершины - вектора в него попавшие

Tishka17
31.07.2019
16:14:35
это ж думать надо =D

B
31.07.2019
16:18:09
это ж думать надо =D
Центр кластера = сумма всех векторов, разделенная на количество векторов в кластере. Сумма и деление в соответствии с операциями векторного пространства. Хотя должен быть соотв. метод встроенный. Дальше k^2/2 расстояний между кластерами, для каждого кластера максимальный/минимальный радиус. И сравнить.

Tishka17
31.07.2019
16:18:22
ну расстояние посчитат ьне проблема

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