Задать вопрос
  • Как решить проблему когда две запущенные транзакции изменяют одну и ту же строку, но одна из транзакций видит старые данные а не новые?

    szQocks
    @szQocks Автор вопроса
    Everything_is_bad, согласен, вот и думаю как бы устранить, у меня несколько серверов запущенных и на каждом из них бывает так что они запускают одну и ту же транзакцию в одно и тоже время, то есть на одном сервере одна и вторая на другом, вот в таком виде:

    SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
    SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
    START TRANSACTION;
    START TRANSACTION
    Написано
  • Как решить проблему когда две запущенные транзакции изменяют одну и ту же строку, но одна из транзакций видит старые данные а не новые?

    szQocks
    @szQocks Автор вопроса
    есть момент, что транзакции начинаются вот так

    SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
    SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
    START TRANSACTION;
    START TRANSACTION


    и предположу что одна из транзакций не получает должный уровень изоляции, а берет по умолчанию из mysql которой я пользуюсь, то есть REPEATABLE READ и поэтому одна из транзакций, то есть вторая которая запускается с REPEATABLE READ, работает со снапшотом, других мыслей у меня нет что ещё может быть, есть идеи как решить это ?
    Написано
  • Как решить проблему когда две запущенные транзакции изменяют одну и ту же строку, но одна из транзакций видит старые данные а не новые?

    szQocks
    @szQocks Автор вопроса
    есть момент, что транзакции начинаются вот так

    SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
    SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
    START TRANSACTION;
    START TRANSACTION


    и предположу что одна из транзакций не получает должный уровень изоляции, а берет по умолчанию из mysql которой я пользуюсь, то есть REPEATABLE READ и поэтому одна из транзакций, то есть вторая которая запускается с REPEATABLE READ, работает со снапшотом, других мыслей у меня нет что ещё может быть, есть идеи как решить это ?
    Написано
  • Как решить проблему когда две запущенные транзакции изменяют одну и ту же строку, но одна из транзакций видит старые данные а не новые?

    szQocks
    @szQocks Автор вопроса
    Пума Тайланд, у меня и стоит READ COMMITTED и этот lost update, создается при этом уровне изоляции с блокировкой записи
    Написано
  • Как решить проблему когда две запущенные транзакции изменяют одну и ту же строку, но одна из транзакций видит старые данные а не новые?

    szQocks
    @szQocks Автор вопроса
    у меня и стоит READ COMMITTED и этот lost update, создается при этом уровне изоляции с блокировкой записи
    Написано
  • Как решить проблему когда две запущенные транзакции изменяют одну и ту же строку, но одна из транзакций видит старые данные а не новые?

    szQocks
    @szQocks Автор вопроса
    SELECT ... FOR UPDATE — он заблокирует строку и вторая транзакция при разблокировке перечитает актуальное.
    это как раз я хочу добиться, что бы она перечитывала, но этого не происходит, так как они делают снапшот записи и работают с ней
    Написано
  • Как решить проблему когда две запущенные транзакции изменяют одну и ту же строку, но одна из транзакций видит старые данные а не новые?

    szQocks
    @szQocks Автор вопроса
    нужно с промежуточным селект, что-то мне подсказывает что нужна эксклюзивная блокировка, то есть что б транзакции не могли читать у друг друга данные которые уже заблокированы
    Написано
  • Не открываются сайты в OSP 6, почему?

    szQocks
    @szQocks
    Станислав, попробуйте в файле заменить содержимое, то что у вас, на то что ниже написал, если не поможет, то предположу что проблема либо в путях, либо проблема совсем не в ospanel

    [example.local]
    
    php_engine = 
    web_engine =


    а хотя раз даже localhost не открывает, хм
    Написано
  • Не открываются сайты в OSP 6, почему?

    szQocks
    @szQocks
    Станислав, должно работать, в самом проекте в папке самой, которая находится к примеру в C:\OSpanel\home\example.local трогали там что-то ? попробуйте просто открыть http://localhost/, и посмотреть будет ли там текст или нет написан какой-то, типа как вы здесь оказались и т.д
    Написано
  • Какое решение архитектурное будет лучшим для запуска процессов на Яваскрипт?

    szQocks
    @szQocks
    Sergey Romanov, вокеры тут не нужны, они не для этих задач

    я вижу вы пытались через цикл сделать наблюдатель, это плохое решение

    вы можете заюзать rabbitmq ( хз если ли в rabbitmq уже что-то похожее ) или bullmq

    когда с клиента отправляется к примеру запрос на бэк ( начать отслеживать устройство ) , тем временем, на бэке - вам нужно запускать задачу ( создавать задачу в bullmq ) для этого устройства которая сама себя будет порождать при успешном выполнении через , каждые N времени которое указано у настроек проекта

    то есть внутри самого обработчика задачи можно написать Bun.sleep(N) - если это пару секунд, если N - это не больше пару секунд, если N будет больше 2-5 секунд, то лучше вообще отложенные задания использовать , эти отложенные задания тоже есть в bullmq, когда задача создается - добавляется запись в Redis

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

    поизучайте bullmq, он мощный
    Написано
  • Какое решение архитектурное будет лучшим для запуска процессов на Яваскрипт?

    szQocks
    @szQocks
    Тем не менее когда клиент отключен, процесс должен продолжать собирать данные для истории и графиков.
    он точно должен так же собирать данные каждую секунду, когда клиентов нет ? или только отображать их каждую секунду когда клиент подключился к нему ?

    Я имею ввиду когда клиентов нет, данные как-то по другому может собирать, не каждую секунду ?
    Написано
  • Почему время в mysql опережает на пару секунд?

    szQocks
    @szQocks Автор вопроса
    если имеешь ввиду про метки, то это не работает, можешь проверить, если бы это работало, на кой черт тогда синхронизировать время ? почитай о том почему время умеет убегать
    Написано
  • Почему время в mysql опережает на пару секунд?

    szQocks
    @szQocks Автор вопроса
    Drno,
    а надо сверять время на твоём сервере с временем в БД на ЭТОМ же сервере...
    я понял, спасибо, я это перепроверил ( с локальным временем ), там всё норм, изначально да я не туда смотрел, бывает

    я вопрос не верно задал, проблема была не в том почему в mysql время не верное, а в том почему на моем бэке время не верное, оно опережало другие сервера, где-то на пару секунд, где-то точно показывало
    Написано
  • Почему время в mysql опережает на пару секунд?

    szQocks
    @szQocks Автор вопроса
    кароче прочитал я кучу инфы в инете, ничего толком не нашёл почему секунды utc разные, наверное из-за того что разное ПО синхронизирует время по разной погрешности, кто-то от секунды, кто-то от 5 секунд или что-то в этом роде или с разным интервалом, кароч хз

    решил с бэка отдавать серверное время на клиент

    и на самом клиент высчитываю разницу и в стор добавляю diff значение и использую по проекту
    const a = moment().utc().toDate();
              const b =  moment(serverDate).utc().toDate();
              const diff = moment(b).diff(a);  // это миллисекунды разница между клиентским и серверным временем, я его просто потом везде добавляю при вычислениях, например в таймерах и т.д
    Написано
  • Почему время в mysql опережает на пару секунд?

    szQocks
    @szQocks Автор вопроса
    Начните с простого - перезапустите MySQL, а затем сверьте время в OS и в MySQL. Убеждён, что они совпадут.
    это я проверял, они одинаково отображают - на пару секунд вперед, когда я захожу на сайт, мой клиент тупо отстаёт на 4 секунды от серверных секунд
    Ага... а то, что от изменения времени в системе и до отображения его на экране могло и больше, чем 2 секунды, пройти - вы не учитываете, да?
    нет

    единственное решение тут вижу в том что бы с сервера передавать время на клиент и таким образом синхронизировать секунды, потому что я щас с клиента отправлял запрос на бэк, запрос был отправлен в 25 секунд, на бэке moment().utc().toDate() - выводит уже 28 секунд, на 3 секунды вперед, хотя весь запрос с клиента на бэк в целом занимает 200мс

    либо я не верно работаю с moment, либо хз

    ну в целом mysql время так же впереди на эти пару секунд, т.к записи создаются в будущем на пару секунд, может вопрос и не корректно я задал, но как-то же надо было его задать, если эта проблема есть в mysql, то и создал вопрос по mysql
    Написано
  • Почему время в mysql опережает на пару секунд?

    szQocks
    @szQocks Автор вопроса
    Drno, какое время выставить одинаково ?

    mayton2019

    timedatectl status
                   Local time: Tue 2026-01-06 20:47:45 UTC
               Universal time: Tue 2026-01-06 20:47:45 UTC
                     RTC time: Tue 2026-01-06 20:47:46
                    Time zone: UTC (UTC, +0000)
    System clock synchronized: yes
                  NTP service: active
              RTC in local TZ: no


    всё настроено

    есть идеи как это не верное время utc, синхроинизровать с moment().utc().toDate() ?
    потому что я щас проверил это, и на сервере Universal time: Tue 2026-01-06 20:47:45 UTC - показывает это время даже в самой mysql так же отображается это время, а локально у меня отображает на 4 секунды назад, то есть при вызове на моем компе moment().utc().toDate() 2026-01-06 20:47:41
    Написано
  • Почему время в mysql опережает на пару секунд?

    szQocks
    @szQocks Автор вопроса
    rPman, сайт

    смотрел в открую консоль одновременно и на секунды на этом сайте, и как только секунда изменилась ( получается в самом начале ) я нажал на enter что бы выполнить команду, и разница была в 2 секунды

    локально когда клиент и сервер у меня на компе - проблемы этой не наблюдаю, как только сервер закинул на vps, с клиента отправляю запрос на сервер, мне в ответ создаются записи в будущем времени - на пару секунд вперед ( время конечно же не с клиента беру ), после этого стал копаться в mysql, предположу что возможно как-то нужно vps донастроить, хотя не уверен
    Написано
  • Как запретить отскок сайта webapp telegram?

    szQocks
    @szQocks
    foxkodland,
    disableVerticalSwipe всегда срабатывает без ошибок
    судя по видео не срабатывает

    ну когда все звезды сойдутся в такт и вариантов не останется, возможно мой коммент поможет, и в провайдер не забудь обернуть приложение когда будешь юзать sdk
    Написано
  • Как запретить отскок сайта webapp telegram?

    szQocks
    @szQocks
    tg.disableVerticalSwipes(); так он вроде не всегда работает или вообще не работает, уже и не помню

    Попробуй

    import { 
      initMiniApp, 
      initSwipeBehavior,
      initViewport
    } from '@telegram-apps/sdk-react';
    
          (async () => {
            const [ miniApp ] = initMiniApp();
            const [ swipeBehavior ] = initSwipeBehavior();
            const [ viewport ] = initViewport();
            const vp = await viewport;
    
            // отключаем свайп если включен
            if(swipeBehavior.isVerticalSwipeEnabled){
              swipeBehavior.disableVerticalSwipe();
            }
    
            vp.expand();
    
            miniApp.ready();
          })();
    Написано
  • Как должна выглядит правильная структура "внедрение зависимостей"?

    szQocks
    @szQocks
    doflare, не знаю, они там используют контроллеры сервисы и репозитории, тебе бы тоже не помешало их юзать, погугли за что отвечает каждый, у тебя в проекте совсем пустота
    Написано