Задать вопрос
  • Какое решение архитектурное будет лучшим для запуска процессов на Яваскрипт?

    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, не знаю, они там используют контроллеры сервисы и репозитории, тебе бы тоже не помешало их юзать, погугли за что отвечает каждый, у тебя в проекте совсем пустота
    Написано
  • Как должна выглядит правильная структура "внедрение зависимостей"?

    szQocks
    @szQocks
    Роман, твой Repository похож на просто замену orm, просто методы для работы с бд, возможно так писали когда-то давно или сейчас так пишут на проектах который например государственный где нельзя юзать какие-то лишние зависимости, и пилят это всё вручную ( моё предположение ), но я обычно юзаю orm и не занимаюсь таким барахлом

    а твои репозитории обычно должны называться и выглядеть что-то типа

    filmRepository
    scoreRepository
    userRepository

    про filmRepository примеры привести вряд ли сходу могу, могу про счёт

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

    получается раз логика дублируется, счет создаётся сразу в двух частях приложения, стоит для scoreRepository добавить метод для создания счета, это всё что могу подсказать

    в принципе у тебя всё написано верно, по факту в коде ничего плохого нет, главный репозиторий для замены orm, тоже имеет место быть, но стоит ли - я это спросил)
    Написано
  • Как должна выглядит правильная структура "внедрение зависимостей"?

    szQocks
    @szQocks
    Роман, а ну хотя не сразу заметил, есть

    type filmRepository struct {
    	*repository
    }


    правда пустой он тут, но не суть, в целом норм

    но действительно ли нужен это главный репозиторий type Repository interface, пилить свою грубо говоря orm ? похоже на велосипед
    Написано
  • Как должна выглядит правильная структура "внедрение зависимостей"?

    szQocks
    @szQocks
    если глянуть на то как ты используй репозиторий, то можно сделать вывод что тебе postgresql тут в принципе не нужно будет, orm от монги тебе решит все твои проблемы xD
    Написано
  • В каком слое DTO объект преобразовывать в словарь перед сохранением в БД?

    szQocks
    @szQocks
    когда ты с бэка данные отдаёшь куда-либо, например на фронт, тогда и юзай дто, что бы не отдавались лишние поля

    для чего в роуте создается дто с данными из формы ? данные из формы тебе надо ток провалидировать и всё, и дальше уже работать с ними либо в сервисе либо в репо, либо и тут и там,где угодно
    Написано
  • Не открываются сайты в OSP 6, почему?

    szQocks
    @szQocks
    podushka, наведи на example.local мышкой, и включи у него nginx и php версию, например 8.2
    Написано
  • Не открываются сайты в OSP 6, почему?

    szQocks
    @szQocks
    podushka, включить общие модули + включить модули для каждого из доменов, рабочие домены должны отображаться зелененьким цветом, по версии которая не является 6.4, подсказать эти нюансы не смогу, так как не затрагивал эти версии ( гугли нюансы запуска )

    68e14442c7999679406061.png
    Написано
  • Не открываются сайты в OSP 6, почему?

    szQocks
    @szQocks
    podushka, модули ты включил для доменов, а сами модули общие включены ?

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

    szQocks
    @szQocks
    модули включить нужно, по мимо php ещё и другие, например nginx
    Написано
  • Как правильно реализовать управление игровыми сессиями в API?

    szQocks
    @szQocks
    Андрей Рафальский,
    привязан ивент или транзакция
    именно про транзакцию ( если имеешь ввиду оплату ), думаю это можно пользователю с клиента указать в какую именно игру он хочет оплатить ( всё равно что заполнить форму ), а на бэке проверять есть ли действительно такая и игра и т.д ( айдишник игры мб к примеру )
    Написано