使用php / MySQL定时事件

时间:2008-09-23 18:45:13

标签: php sql mysql events timing

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

  • 在表格中插入等待期的结束时间
  • 当用户加载请求更改值的页面时,请检查当前> =结束时间
  • 如果是,则更改值并删除结束时间字段,如果不是,则不执行任何操作

这将成为网站的一大特色,因此效率是关键;考虑到这一点,你可能会看到我如何做的问题。每当有人访问需要该信息的页面时,就会调用相同的代码块。

非常感谢任何改进建议或更好的方法,最好是在php或perl。

回应cron职位答案: 谢谢,如果可能的话,我想做类似的事情,但主机限制是问题所在。由于这是应用程序的主要部分,因此不能受到限制。

5 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

您是否可以使用cron作业定期检查数据库中的每个字段并以此方式更新?

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

答案 3 :(得分:1)

您可以在每个页面加载时使用某种触发器。我真的不知道这会如何影响性能,但也许其他人可以解决一些问题。

答案 4 :(得分:0)

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