Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Timed events with php/MySQL

I need a way to modify a value in a table after a certain amount of time has passed. My current method is as follow:

  • insert end time for wait period in table
  • when a user loads a page requesting the value to be changed, check to see if current >= end time
  • if it is, change the value and remove the end time field, if it isn't, do nothing

This is going to be a major feature on the site, and so efficiency is the key; with that in mind, you can probably see the problem with how I'm doing it. That same chunk of code is going to be called every time someone access a page that needs the information.

Any suggestions for improvements or better methods would be greatly appreciated, preferably in php or perl.

In response to cron job answers: Thanks, and I'd like to do something like that if possible, but hosts limits are the problem. Since this is a major part of the app, it can't be limited.

like image 498
cblades Avatar asked Dec 23 '22 14:12

cblades


1 Answers

why not use a cron to update this information behind the scenes? that way you offload the checks on each page hit, and can actually schedule the timing to meet your app's requirements.

like image 80
Owen Avatar answered Dec 28 '22 07:12

Owen