Временные события с php / MySQL - PullRequest
       18

Временные события с php / MySQL

4 голосов
/ 23 сентября 2008

Мне нужен способ изменить значение в таблице после определенного промежутка времени. Мой текущий метод заключается в следующем:

  • вставить время окончания периода ожидания в таблицу
  • когда пользователь загружает страницу, запрашивающую изменение значения, проверьте, является ли текущий> = время окончания
  • если это так, измените значение и удалите поле времени окончания, если это не так, ничего не делайте

Это будет главная функция на сайте, и поэтому ключевым фактором является эффективность; Имея это в виду, вы, вероятно, можете увидеть проблему с тем, как я это делаю. Тот же самый фрагмент кода будет вызываться каждый раз, когда кто-то получает доступ к странице, которая нуждается в информации.

Будем весьма благодарны за любые предложения по улучшению или улучшению методов, желательно на php или perl.

В ответ на ответы cron job: Спасибо, и я хотел бы сделать что-то подобное, если это возможно, но ограничения хостов являются проблемой. Так как это основная часть приложения, оно не может быть ограничено.

Ответы [ 5 ]

5 голосов
/ 23 сентября 2008

почему бы не использовать cron для обновления этой информации за кулисами? таким образом вы разгрузите проверки на каждом обращении к странице и сможете запланировать время для удовлетворения требований вашего приложения.

3 голосов
/ 23 сентября 2008

Ваше решение звучит очень логично, так как у вас нет доступа к cron. Другим способом может быть сохранение значения в файле, и при следующей загрузке страницы проверьте, когда она была в последний раз изменена (filemtime ("checkfile.txt")), и решите, нужно ли ее снова изменить. Вы должны проверить производительность для обоих методов.

2 голосов
/ 23 сентября 2008

Можете ли вы использовать задание cron для периодической проверки каждого поля в базе данных и обновления таким образом?

Большая часть этого - то, как часто требуются обновления. Многие общие хосты ограничивают частоту проверок cron, например, не чаще, чем каждые 15 минут, что может повлиять на работу приложения.

1 голос
/ 24 сентября 2008

Вы можете использовать какой-то триггер на каждой странице загрузки. Я действительно понятия не имею, как это повлияет на производительность, но, может быть, кто-то еще может пролить свет.

0 голосов
/ 24 сентября 2008

Если производительность действительно начинает вызывать проблемы (что означает гораздо больше, чем вы, вероятно, понимаете), вы можете использовать memchached для хранения информации ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...