Оптимальный способ обновить данные sql вторым

У меня есть 100-150 строк данных в моей базе данных SQL, используемых в веб-сайте / приложении PHP.

Каждый элемент в строках базы данных представляет «товарное предложение». Каждое предложение имеет несколько основных свойств, статус действия и срок действия.

Поскольку каждое предложение указано на веб-странице, часы будут отсчитывать время до истечения указанного срока. Если к моменту истечения срока действия предложение имеет статус «Действителен», статус предложения должен будет измениться на «Истек». Кроме того, потребуется выполнение некоторых других функций PHP (они отправляют транзакционные электронные письма и обновляют списки наблюдения для пользователей)

Таймер восстановления, который я использую, может вызвать обратный вызов при обратном отсчете до указанной даты истечения. Это может вызвать команду AJAX, чтобы обновить статус достоверности предложений и сделать все, что мне потребуется. Однако, если у меня есть 100 человек, просматривающих страницу предложений, это вызовет 100 событий при обратном вызове, и если на моей странице никого нет, событие вообще не сработает. Так что это не жизнеспособное решение.

Я рассматривал задания CRON, но я понимаю, что они часто выполняются не более одной минуты, опять же, это не подходит, так как срок действия предложений истекает с точностью до секунды.

Как сайты, такие как ebay, обновляют свою информацию о списках для тысяч строк данных в день, когда вторые элементы достигают своего конечного времени?

Есть ли примеры наилучшей практики для минимизации нагрузки на сервер?

0

Решение

У меня есть 100-150 строк данных в моей базе данных SQL, используемых в веб-сайте / приложении PHP.

Каждый элемент в строках базы данных представляет «товарное предложение». Каждое предложение имеет несколько основных свойств, статус действия и срок действия.

Поскольку каждое предложение указано на веб-странице, часы будут отсчитывать время до истечения указанного срока. Если к моменту истечения срока действия предложение имеет статус «Действителен», статус предложения должен будет измениться на «Истек». Кроме того, потребуется выполнение некоторых других функций PHP (они отправляют транзакционные электронные письма и обновляют списки наблюдения для пользователей)

Таймер восстановления, который я использую, может вызвать обратный вызов при обратном отсчете до указанной даты истечения. Это может вызвать команду AJAX, чтобы обновить статус достоверности предложений и сделать все, что мне потребуется. Однако, если у меня есть 100 человек, просматривающих страницу предложений, это вызовет 100 событий при обратном вызове, и если на моей странице никого нет, событие вообще не сработает. Так что это не жизнеспособное решение.

Я рассматривал задания CRON, но я понимаю, что они часто выполняются не более одной минуты, опять же, это не подходит, так как срок действия предложений истекает с точностью до секунды.

Как сайты, такие как ebay, обновляют свою информацию о списках для тысяч строк данных в день, когда вторые элементы достигают своего конечного времени?

Есть ли примеры наилучшей практики для минимизации нагрузки на сервер?

самый старый «data-shortcut =» O

Другие решения

Лучший вариант сделать это в два этапа.

Удалите событие AJAX. Выполните проверку с помощью ajax: например, когда истекает время таймера (на ajax), они отключают кнопку покупки или другую необходимую задачу.

На веб-сервере сделайте две вещи: во-первых, используйте cron или подобное, чтобы истечь каждую минуту. Во-вторых, при попытке «покупки» (если ваша страница является магазином), проверьте, действительно ли запрошенное предложение уже действует.

Это лучший подход, который вы можете использовать.

голосует «data-shortcut =» V

0
По вопросам рекламы [email protected]