php / MySQL定时事件

时间:2020-03-06 14:37:08  来源:igfitidea点击:

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

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

这将是该站点的主要功能,因此效率是关键。考虑到这一点,我们可能会发现我的操作方式存在问题。每当有人访问需要该信息的页面时,都将调用相同的代码块。

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

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

解决方案

我们可以使用cron作业定期检查数据库中的每个字段并以这种方式更新吗?

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

为什么不使用cron在后台更新此信息?这样,我们就可以卸载每次点击时的支票,并可以实际安排时间来满足应用程序的要求。

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

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

我们可以在每次页面加载时使用某种触发器。我真的不知道这会如何影响性能,但也许其他人可以有所启发。