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


4

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

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

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

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

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

  0

Какой вид времени вы смотрите? обновление через несколько секунд было бы легко, обновление через несколько часов, сложнее. 23 сен. 082008-09-23 19:20:33

  0

на общем хосте, это самое лучшее, что вы можете сделать. Если это достаточно серьезное приложение, что эффективность этого метода под вопросом, вам нужен лучший хост. Вы можете получить доступный VPS, который даст вам root-доступ, и вы можете запускать cron так часто, как вам нравится. 23 сен. 082008-09-23 20:03:49

2

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

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


5

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


3

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

  0

Звучит неплохо; Я попробую. Благодарю. 23 сен. 082008-09-23 23:15:23


0

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


1

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

  0

Это, по сути, то, что я делаю, но в любом случае спасибо. 23 сен. 082008-09-23 23:14:49