Size: a a a

Сообщество Python Программистов

2021 March 14

Y

Ya0 in Сообщество Python Программистов
Alexander T
Декоратор на функцию хождения в базу, который в оперативке держит время последнего обращения.
я начал разбираться с selery, но это писец для меня. Модуль хочет брокера, выбрал RabbitMQ, скачал установил, брокер просит ерланг установить. Я уже забыл что хотел сделать))) До сих пор вон качает.

В оперативке держать это просто в какую-то переменную положить время и отсчитывать от неё 5 минут datetime'ом?
источник

AT

Alexander T in Сообщество Python Программистов
Ya0
я начал разбираться с selery, но это писец для меня. Модуль хочет брокера, выбрал RabbitMQ, скачал установил, брокер просит ерланг установить. Я уже забыл что хотел сделать))) До сих пор вон качает.

В оперативке держать это просто в какую-то переменную положить время и отсчитывать от неё 5 минут datetime'ом?
Да.
источник

Y

Ya0 in Сообщество Python Программистов
сейчас попробую, может намного быстрее будет. +
источник

Y

Ya0 in Сообщество Python Программистов
Спс
источник

K

KarmaBot in Сообщество Python Программистов
Ya0
Спс
Вы увеличили карму Alexander T до 4874.62 (+5.20)
источник

ХБ

Хорёк Бурдиняка... in Сообщество Python Программистов
Egor
Обусловлена тем, что such elements нет.
Кинь код на pastebin.com
источник

И

Иван in Сообщество Python Программистов
Подскажите пожалуйста в чем может быть проблема? При компиляции кода в один EXE файл  модуль threading просто не работатает. все остальное нормально функционирует . проблема именно в модуле threaling. Делаю через pyinstaller
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Rud 356
И то писались они как говно, лучше сам разберись и пиши свои
ля, по итогу лень меня смотивировала написать тесты
просто впадлу каждый раз после проверки чистить БД и так далее
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Самих тестов там с гулькин хер, конечно, но зато сетап и тирдаун делаются сами
источник

Y

Ya0 in Сообщество Python Программистов
Alexander T
Декоратор на функцию хождения в базу, который в оперативке держит время последнего обращения.
Бро, сделал декоратор, вроде все работает. Вопрос только. Сейчас время храню тупо в переменной глобальной, которую определил в начале файла. С одного акка все норм, но если второй акк заходит - ему достается та же переменная с тем же значением. Т.е. он ни разу не кликал на кнопку - и не может кликнуть, потому что надо ждать минимум 1 минута.

Первое что приходит в голову - вместо переменной - словарь сделать с key: user_id и value: datetime. Но он в реале, если будет много пользователей разжиреет и будет тяжелым, что еще хуже наверное, чем просто в БД стучать. Может еще что-то посоветуешь? Сижу, туплю
источник

AT

Alexander T in Сообщество Python Программистов
Ya0
Бро, сделал декоратор, вроде все работает. Вопрос только. Сейчас время храню тупо в переменной глобальной, которую определил в начале файла. С одного акка все норм, но если второй акк заходит - ему достается та же переменная с тем же значением. Т.е. он ни разу не кликал на кнопку - и не может кликнуть, потому что надо ждать минимум 1 минута.

Первое что приходит в голову - вместо переменной - словарь сделать с key: user_id и value: datetime. Но он в реале, если будет много пользователей разжиреет и будет тяжелым, что еще хуже наверное, чем просто в БД стучать. Может еще что-то посоветуешь? Сижу, туплю
У твоего фреймворка есть место, где хранится стейт?
источник

Y

Ya0 in Сообщество Python Программистов
Alexander T
У твоего фреймворка есть место, где хранится стейт?
Стейт - это?
Пишу на голом python с модулями, для связи с телеграмом использую pytelegrambotapi. Если я правильно понял - фреймворков не использую. Сам себе структуру создал простенькую и все.

Сори, если совсем нубские вопросы, не так давно пишу..
источник

Y

Ya0 in Сообщество Python Программистов
я могу скинуть структуру и код, но боюсь тут слабонервные не выдержат))) шок контент будет какой-то)
источник

AT

Alexander T in Сообщество Python Программистов
Ya0
Стейт - это?
Пишу на голом python с модулями, для связи с телеграмом использую pytelegrambotapi. Если я правильно понял - фреймворков не использую. Сам себе структуру создал простенькую и все.

Сори, если совсем нубские вопросы, не так давно пишу..
Тогда самому надо что-то придумывать. Хоть и словарь.
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Ya0
Питонисты, подскажите, как могу реализовать задержку между нажатиями кнопки с выводом уведомления (пишу бота тг).

Есть кнопка "собрать урожай". После первого нажатия (если на балансе есть урожай - собирает его, если нету - показывает уведомление, что надо подождать, пока соберется хотя бы 1 единица урожая). Каждое нажатие кнопки - запрос в БД. Есть ли способ сделать 5 минутную задержку между нажатиями кнопки (показывая уведомление "подождите 5 минут перед тем, как опять сделать попытку сбора урожая")?

Ничего, кроме как записывать время последнего сбора в БД и от него считать 5 минут в голову не пришло, а это ничего не меняет, и так в БД запросы кидаются.

Гугл ничего, кроме sleep(x) не подсказывает, но походу запрос как-то не так генерирую.
у нас же в кармаботе такое что-то было
уведомление по условию
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
когда тыкает отменить назначение кармы не тот кто назначал
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Ya0
Бро, сделал декоратор, вроде все работает. Вопрос только. Сейчас время храню тупо в переменной глобальной, которую определил в начале файла. С одного акка все норм, но если второй акк заходит - ему достается та же переменная с тем же значением. Т.е. он ни разу не кликал на кнопку - и не может кликнуть, потому что надо ждать минимум 1 минута.

Первое что приходит в голову - вместо переменной - словарь сделать с key: user_id и value: datetime. Но он в реале, если будет много пользователей разжиреет и будет тяжелым, что еще хуже наверное, чем просто в БД стучать. Может еще что-то посоветуешь? Сижу, туплю
сделай, короче, привязку к id юзера)
не втупую переменная, а словарик с айдишниками и временами
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
когда тыкает отменить назначение кармы не тот кто назначал
тут я херню походу спорол
источник

Y

Ya0 in Сообщество Python Программистов
Бензофуран Гетероцикл
у нас же в кармаботе такое что-то было
уведомление по условию
сделать можно, это не проблема. Вопрос в том, что под кнопкой. Логика какая. Можно записать в базу данных, что поставил репутацию пользователь с айди 12345. При нажатии на кнопку сравнить ID пользователя со значением в базе. Я так сделал изначально. Но в базу стучать надо постоянно. Думал, есть ли какие-то способы это изменить.

Словарь мне кажется в ОЗУ еще хуже будет, чем БД стучать
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Ya0
сделать можно, это не проблема. Вопрос в том, что под кнопкой. Логика какая. Можно записать в базу данных, что поставил репутацию пользователь с айди 12345. При нажатии на кнопку сравнить ID пользователя со значением в базе. Я так сделал изначально. Но в базу стучать надо постоянно. Думал, есть ли какие-то способы это изменить.

Словарь мне кажется в ОЗУ еще хуже будет, чем БД стучать
словарь быстрее
источник