🍁 Jaŭhien
вижу воможный баг
🍁 Jaŭhien
что если сумма транзакции будет равна 5000? =)
Anonymous
Гайз, какой самый элегантный способ опустошить генератор, не сохраняя результата? УЖЕ РАЗОБРАЛСЯ
Anonymous
for _ in path.glob("**"): pass
Misha
ну вообще вроде да, не должны
а вообще elif - else выглядит обычно лучше чем тонна ифов
🍁 Jaŭhien
list()
Anonymous
list()
Память же всёравно будет выделяться?
Anonymous
Даже если я не буду делать присваивания
🍁 Jaŭhien
а, ну да
AMD Chan
Повторюсь с вопросом. Развернут python HTTP сервер, который handle-ит get запросы. Он работает в своем потоке. У него для handler-а есть функция do_GET, в которой вызывается другая функция, в которой происходит get запрос, возвращающий коды 200 от активных серверов и создает массив активных серверов. и do_GET должен при получении запроса возвращать этот список в виде Json-а. но получается так, что если на каком-либо сервере запущена серверная часть, возвращающая код 200 контрольному серверу, контрольный сервер начинает жестко жрать процессор, 30-40%. как это исправить, подскажете?
I
а вообще elif - else выглядит обычно лучше чем тонна ифов
if transaction.amount < 5000: # do stuff A elif 5000 < transaction.amount <=30000: # do stuff B else: # do stuff C ?
I
да, ну и условие с 5000 исправь
не понял , что за условие с 5000
Noor
не понял , что за условие с 5000
нер-во нестрогое сделай в первом условии
I
а , ну да
Aleksandr
я думаю < 5000 можно убрать, если будет меньше 5000 , то до туда не дойдет
Misha
у тебя оно не включается ни в первом ни во втором условии
Noor
5к ни в один диапазон не попадает
I
так и есть мисанул
I
логика другая же
да я понял мисанул равно
🍁 Jaŭhien
да я понял мисанул равно
три последовательных ифа не эквивалентны if-elif-else
Misha
В данной ситуации то же самое
I
так стоп вы меня че то запутали
🍁 Jaŭhien
вообще нет
Misha
вообще нет
ну и почему?
🍁 Jaŭhien
ну потому что если сумма больше 30к - то выполнится А, Б и С
Misha
каким макаром?
🍁 Jaŭhien
а при elif-else выполнится только С
I
https://gist.github.com/qper228/1290165346f487f4967149b79cb7d1d5
I
все ж правильно ?
I
че вы это самое
🍁 Jaŭhien
каким макаром?
ну подумай слегка
Noor
а при elif-else выполнится только С
если я правильно понял, только это и нужно при >30к
🍁 Jaŭhien
if условие: do A if условие2: do B if условие3: do C
🍁 Jaŭhien
if условие: do A elif условие2: do B else: do C
Sasha
все ж правильно ?
через элиф не нужно continue
Misha
ну подумай слегка
In [9]: a = 40000 ...: if a < 5000: ...: print('1') ...: if 5000 <= a <= 30000: ...: print('2') ...: if a > 30000: ...: print('3') ...: 3
I
ну я на всякий его вйебал туда
Misha
каким образом при условии <5000 значение в 30к зайдет в условие?
Sasha
Гайз. А вам не кажется что это в бегиннерс ?
🍁 Jaŭhien
ну да, ты прав, здесь не зайдет
Sasha
Как-то не особо интересно тут такое обсуждать =)
🍁 Jaŭhien
но в целом это не эквивалентные конструкции
Misha
я так сразу и написал
Mikhail
#работа #офис 60-180к фласк, джанго, код для автоматизации инфраструктуры. Подробности в личку. Москва. Несколько позиций, джуниор, мидл.
🍁 Jaŭhien
окей, я не особо вникал в диалог
Mikhail
Смотрим джунов и мидлов
Mikhail
Смотрим на смежные навыки
Sasha
А город чего не пишете?
Richard
Очень большой разброс
Sasha
Если уж это офис
Aleksandr
может стоит разделить, вилка для джунов, вилка для мидлов
AMD Chan
Mikhail
может стоит разделить, вилка для джунов, вилка для мидлов
Может, но, думаю, это не принципиально :))
Sasha
не называйте переменные зарезервированными словами =)
AMD Chan
не называйте переменные зарезервированными словами =)
тут не сильно важно было, до стадии рефактора к тому же я еще не дошел. пошел смотреть, чем в питоне код профайлить
B
не называйте переменные зарезервированными словами =)
Ну тут по стилю можно вагон замечаний высказать, на работоспособность, мне кажется, не влияет.
B
Так, теперь get_status пожалуйста покажите
AMD Chan
get_status просто делает get request
Tishka17
get_status просто делает get request
чЗХ с дебагом логом?
AMD Chan
иногда нужно проверить, если что-то переписал и перестало работать. переменная с конфига парсится, там все настраивается
B
get_status просто делает get request
А на других серверах такой же код, правильно? То есть у вас mesh серверов которые друг друга опрашивают?
AMD Chan
Mesh в том смысле что каждый сервер опрашивает каждого.
Нет, опрашивает только контрольный сервер
AMD Chan
И у него уже планшет может get запросом может спросить - а какие сервера активны. И он ответит списком, запакованным в json
AMD Chan
И как раз эта проблема именно на контрольном сервере, с обычными порядок.
B
Точную причину поможет выяснить профайлинг. С архитектурной точки зрения, на мой взгляд не совсем правильно в синхронном коде синхронно опрашивать список серверов. Сделайте отдельную задачу, которая периодически будет получать список живых серверов. Пусть она сохраняет этот список в какое-то хранилище, бд (sqlite) , redis, что лучше подойдёт под требования. Тогда на гет запрос надо просто отдать содержимое хранилища, сериализовав нужным образом. Также замечу, что использование встроенного http сервера не считаю оправданным. Используйте хотя бы flask/bottle.
iwrestledachihuahuaonce