我有一个密码恢复系统,允许用户通过电子邮件恢复其密码。每个请求的详细信息都会插入到我的recoveries
表中,并在成功恢复时删除。每次恢复创建10分钟后,每个恢复都有一个时间戳。创建10分钟后过期记录的最有效方法
我想实现一个系统,它会在10分钟后自动删除每个过期恢复。由于这个到期时间对于每一行都是不同的,这意味着使用cron作业在执行这个任务时会非常无效。
什么是最有效的方法来实现这一目标?
这里是我的代码:
$time = time();
$recoveries = DB::fetch("DELETE FROM `recoveries` WHERE `expiry` <= ?;", array($time));
从这里拿参考http://stackoverflow.com/questions/14096429/how-to-delete-a-mysql-record-after-a-certain-time – Saty 2015-04-05 12:57:06
我会亲自离开记录在并使用恢复的密码向登录名添加条件以匹配您的10分钟延迟。然后在夜间每天添加一个cron任务清理过期的条目。 – 2015-04-05 13:01:43
@satishrajak什么时候我应该运行该代码? – mightyspaj3 2015-04-05 13:08:33