170 похожих чатов

😣 Ребят, хэлп! Юзаю аиограмчик и postgres (asyncpg). До этого юзал в

качестве базы sqlite и проблемы такой не было, а проблема в следующем:

Представим кейс (для примера), есть инлайн кнопочка, при нажатии получаем 50 игровых монеток раз в 30 минут (или 5 сек, как на видео)

Callback-handler там такой:
> селектится значение таймера из бд (timestamp)
> если пришло время забирать монетки, апдейтим во первых сам таймер (добавляем 30 минут к нему), а во вторых накидываем монеток

А в чём проблема? На поверхности всё ок, но если мы отключим интернет на телефоне, быстро покликаем на кнопочку, врубим обратно сеть, то увидим что кнопочка заюзалась не один раз, а 5 (зависит от того как быстро кликал)

Что посоветуете, как зафиксить? Поставил сейчас тротлет, чтоб хоть как-то приглушить проблему, но есть способы обхода и игроки быстро догадаются. И это затычка, нежели решение.

20 ответов

24 просмотра

Сохраняй в бд таймстемп последнего пополнения, а не ближайшего будущего

джессик- Автор вопроса
Alex
Сохраняй в бд таймстемп последнего пополнения, а н...

Мне тогда 25к строчек когда придётся переписать, у меня всё в таком стиле сделано. Да и дело не в этом скорее всего, результат будет аналогичным.

джессик
Мне тогда 25к строчек когда придётся переписать, у...

Заранее продумывать нужно) и нет, это вполне исправит ситуацию Повторное нажатие не отработается

джессик- Автор вопроса
Alex
Заранее продумывать нужно) и нет, это вполне испра...

Заранее не надо было продумывать, так как всё безупречно работало с прошлой бд, на протяжении 9 месяцев. Ща попробую твой вариант и отпишусь

джессик
screenshot правильно понял?

вроде когда начал читать увидел что то в тебе хорошее и тут f в запросах

джессик
screenshot и я предугадал это тоже

кто юзает ф-строки в бд запросах тот лох чмо гитлер

джессик
чмом уж тем более

ну если и был то ему мог об этом только сталин сказать)

Зомби Engineer🧟‍♂️🇷🇸
врятли гитлер лохом был

так я и за гитлера ничего не говорю

джессик- Автор вопроса
Зомби Engineer🧟‍♂️🇷🇸
ну если и был то ему мог об этом только сталин ска...

Так Сталин ему и сказал, а иначе из-за чего начался весь сыр-бор и война?

джессик
Заранее не надо было продумывать, так как всё безу...

Потому что работа с скулайт идет в один поток, наверное

Aleksandr Danilov 🇺🇦
Это не причина

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

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта