Anonymous
не умён в этой сфере кто может развёрнуто обьяснить
Anonymous
всё сделал
Anonymous
разобрался
Alexander
Волшебно
Ivan
Ребят, я прописал ALTER TABLE ... ADD COLUMN invited integer; 450к строк. База перестала отвечать. Сделал в новом окне SELECT * FROM users LIMIT 1; Она просто висит Что за прикол я сделал?
Ivan
Висит именно таблица
Виталий
какая async библиотека для работы с mysql лучшая?
gerGrin
только асинхроность надо самому писать)
Ivan
postgresql
Anonymous
Что за библиотека?
Vladimir
postgresql
А версия?
Anonymous
Pytelegrambotapi
Anonymous
а, телеграм
Vladimir
9.5.16
Вот я тоже не увидел, посмотри у тебя Локи на таблице скорее всего
Ivan
А нот налл был?
нет. Весь запрос ALTER TABLE users ADD COLUMN invited integer;
Ivan
Вот я тоже не увидел, посмотри у тебя Локи на таблице скорее всего
Остальные таблицы отвечают, только таблица users повисла
Ivan
Ну да, так а что делать лол
Ivan
Там всего-лишь 450к строк, это операция на секунду
Ivan
Или типо случился деадлок?
Vladimir
Или типо случился деадлок?
Да, конкретно в твоём случае без дефолтов и not null все должно было быть ок
Ivan
Да, я ничего более не делал
Vladimir
Или типо случился деадлок?
https://www.postgresql.org/docs/9.5/view-pg-locks.html посмотрим на чем Лок.
Ivan
Да вот он ее держит
Ivan
этот запрос
Ivan
Что я такова сделал....
Ivan
Vladimir
Что я такова сделал....
Ты сделал одновременный запрос в таблицу и alter - как-то так
Ivan
Это не я, это продакшен
Ivan
Это дедлок?
Vladimir
Это дедлок?
Если ещё актуально: select pg_terminate_backend(pid int); - на все запросы с select, когда их всех убьешь, alter отработать должен
Andrey
есть у тебя класс яблок. для него определена операция сложения. она позволяет складывать яблоки с другими яблоками. при этом, мы хотим складывать яблоки пачками (с помощью sum) но! у sum дефолтный аккумулятор - не "пустое яблоко", а интовый ноль. естественно, попытка прокинуть ящик яблок в sum приводит к ошибке (потому что яблоки с интами складывать, в общем-то нельзя) теперь что вызывает недоумение: вместо того, чтобы определить "нейтральное по сложению яблоко" или воспользоваться другими способами решения проблемы, ты разрешаешь складывать яблоки с одним единственным интом, который 0. причем, только справа. это, как бы, совсем не здорово. 1. складывание с интовым нулём классу яблок не нужно от слова вообще - то есть мы перегружаем класс яблок бессмысленной хренью 2. если таки придётся складывать яблоки с интами, у нас тут возможны нюансы. (да, да - тут всегда можно сказать "не понадобится никогда". это самый частый "аргумент" в таких спорах) 3. это классическая "борьба с симптомами вместо болезней".
Всё это разумные аргументы, но как обычно есть нюанс. У нас в стандартной библиотеке такие хаки встречаются регулярно. Самый яркий пример - filter(None, ...). Да, семантика нарушена, но это же удобно. Мы же здесь в конце концов задачи решаем, а не за семантику боремся.
Nikolay
Пятница же 🌚
Pavel
ну вчера была не пятница
Pavel
да и вообще, пятница - не повод нести хуйню в массы
Denis
Пятница же 🌚
Нам-то что, безработным
Nikolay
Ну да
R
память может как-нибудь через grequests утекать? у меня парсер в цикле крутится 24/7, постепенно потребление растет
Vitaliy
Хз, когда в функциональном стиле с функторами, итераторами, фильтрами, зипами работаешь (отложенные вычисления, по запросу), то потребление памяти расстраивает...
Denis
Перезапускай его иногда
Vitaliy
память может как-нибудь через grequests утекать? у меня парсер в цикле крутится 24/7, постепенно потребление растет
Аналогичная ситуация при функциональном стиле. Даже с математическими операциями
R
Перезапускай его иногда
так уже и сделал этот костыль
Vitaliy
И не 365 / 24
R
иначе бот телеги падает
Ivan
Если ещё актуально: select pg_terminate_backend(pid int); - на все запросы с select, когда их всех убьешь, alter отработать должен
Ну я по итогу удалил из очереди задачу с Алерт тейбл, остановил прод и уже внёс изменения
freezlite
А как написать корутину которая подойдет для async ?
freezlite
Везде в примерах готовые конечные функции по типу aiohttp.request(
Alex
Везде в примерах готовые конечные функции по типу aiohttp.request(
эта черепашка нагло врет и не читала документацию
freezlite
какая черепашка?
Alex
https://docs.python.org/3/library/asyncio-task.html первый блядь пример
Alex
какая черепашка?
https://bash.im/quote/393020
Alex
и ?
freezlite
Я просил пример самой вложенной функции которую можно передать в asyncio
freezlite
мне интересно само устройство asyncio.sleep
Alex
Я просил пример самой вложенной функции которую можно передать в asyncio
это и есть пример функции, которую можно передать в asyncio. в данном случае это корутина, которая вызывает другую корутину, в конкретном примере sleep.
freezlite
Т.е в документации все-же нет как ты говорил
freezlite
Ты спиздел ?
Alex
Т.е в документации все-же нет как ты говорил
чего именно нет? как слип устроен?
Alex
он банально дергает loop.call_later если ты об этом
Alex
ты таки не поверишь но sleep это вот в точности такая же корутина, как и та что описана в примере.
Vladimir
Т.е в документации все-же нет как ты говорил
https://github.com/python/cpython/blob/d8c93aa5d29d3cab537357018d5806a57452a8fe/Lib/asyncio/tasks.py#L623 - вот тебе сорцы
Alex
https://github.com/python/cpython/blob/d8c93aa5d29d3cab537357018d5806a57452a8fe/Lib/asyncio/tasks.py#L623 - вот тебе сорцы
он видимо хочет у знать как работать с ивент лупом напрямую, но не знает как об этом спросить.
Alex
это кстати тоже описано в доке
freezlite
https://github.com/python/cpython/blob/d8c93aa5d29d3cab537357018d5806a57452a8fe/Lib/asyncio/tasks.py#L623 - вот тебе сорцы
мне нужен пример по проще или хотя-бы с комментариями
Alex
мне нужен пример по проще или хотя-бы с комментариями
ты бы для начала вопрос сформулировал чего конкретно ты хочешь пример
Alex
примеры корутин подробно описаны в документации.
John
for line in io.lines("/proc/net/dev") do if not line.match(line,"^((gre|ifb).)*$") then print (line) end что я делаю не так? по сути мне надо исключить из line две строки gre0 и ifb1
Alex
апи ивент лупа подробно описано в соответствующем разделе https://docs.python.org/3/library/asyncio-eventloop.html