• Как обновлять каждую секунду значение в MySQL посредством PHP?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    IMHO, второй способ - это какое-то извращение. Вместо того, чтобы раз в час по запросу пользователя посчитать прошедшее время, каждую секунду дёргать базу на запись? А если сервер надо будет перезагрузить, то прошедшие две-три-пять минут вообще не учтутся?
    Ответ написан
    Комментировать
  • Как обновлять каждую секунду значение в MySQL посредством PHP?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Как мне кажется из каменного века. Создать отдельное поле, в которое я сохраняю точное время инициации действия. В тот момент когда мне надо показать пользователю поле "account" я показываю account + ( (дата инициации дейтсивя обновления поля accoutn) - (дата отображения поля) )*(нужный параметр добавления)
    "Долбить" базу каждую секунду, без особой на то нужды, когда можно этого не делать - плохая идея. Данное решение описывает более рациональный подход, если он конечно возможен.

    Писать сторонний микросервис, который будет отправлять каждую секунду запросы в БД и увеличивать значение.
    Не знаю, что Вы подразумеваете под "сторонним микросервисом" и как это в конечном итоге должно работать (логически), например при нагрузке, запросы могут вставать в очередь и данные могут терять свою актуальность в этом (вашем) случае... Можете попробовать несколько вариантов:

    1. Попробовать использовать "родные" события MySQL

    2. Создать примитивный скрипт PHP, типа такого и запустить его (на бесконечное выполнение):
    <?php
    while(true) {
    mysql_query("..."); //Условно
    sleep(1);
    }
    но, он будет выполняться не 1 раз в секунду, а с паузой в 1 секунду

    3. Загадить крон заданиями, в кол-ве около 60 штук (т.к. крон задания запускаются минимум 1 раз в минуту), как это примерно должно выглядеть описано здесь, что в целом тоже не очень надёжно, т.к. высока вероятность, что рано или поздно, запросы могут отвалиться, приводя тем самым самым данные в неактуальное состояние.
    Ответ написан
    1 комментарий