php/MySQL中的定时事件

php/MySQL中的定时事件,php,sql,mysql,events,timing,Php,Sql,Mysql,Events,Timing,我需要一种方法在经过一定时间后修改表中的值。我目前的做法如下: 在表中插入等待期间的结束时间 当用户加载请求更改值的页面时,检查当前>=结束时间 如果是,则更改该值并删除“结束时间”字段,如果不是,则不执行任何操作 这将是网站的一大特色,因此效率是关键;考虑到这一点,你可能会发现我如何做的问题。每次有人访问需要信息的页面时,都会调用相同的代码块 任何关于改进或更好方法的建议都将不胜感激,最好使用php或perl 针对cron作业的回答: 谢谢,如果可能的话,我想做一些类似的事情,但是主机限制

我需要一种方法在经过一定时间后修改表中的值。我目前的做法如下:

  • 在表中插入等待期间的结束时间
  • 当用户加载请求更改值的页面时,检查当前>=结束时间
  • 如果是,则更改该值并删除“结束时间”字段,如果不是,则不执行任何操作
这将是网站的一大特色,因此效率是关键;考虑到这一点,你可能会发现我如何做的问题。每次有人访问需要信息的页面时,都会调用相同的代码块

任何关于改进或更好方法的建议都将不胜感激,最好使用php或perl

针对cron作业的回答:
谢谢,如果可能的话,我想做一些类似的事情,但是主机限制是问题所在。因为这是应用程序的主要部分,所以它不能被限制

是否可以使用cron作业定期检查数据库中的每个字段并进行更新


其中很大一部分是需要更新的频率。许多共享主机限制cron检查的频率,例如不超过每15分钟一次,这可能会影响应用程序

为什么不在幕后使用cron来更新这些信息?这样,您就可以在每次点击页面时卸载检查,并实际安排时间以满足应用程序的要求。

您的解决方案听起来非常合理,因为您没有访问cron的权限。另一种方法是将值存储在文件中,下次加载页面时,检查上次修改的时间(filemtime(“checkfile.txt”)),并确定是否需要再次修改。您应该测试这两种方法的性能。

如果性能真的开始成为一个问题(这意味着比您可能意识到的要多得多),您可以使用memchached来存储信息…

您可以在每次页面加载时使用某种触发器。我真的不知道这将如何影响性能,但也许其他人可以提供一些信息。

您正在考虑什么样的时间跨度?几秒钟后更新会很容易,几小时后更新会更困难。在共享主机上,这是您所能做的最好的事情。如果这是一个足够大的应用程序,以至于这种方法的效率受到质疑,那么您需要一个更好的主机。您可以获得一个价格合理的VPS,它将为您提供根访问权限,并且您可以随时在其上运行cron。