我有一個密碼恢復系統,允許用戶通過電子郵件恢復其密碼。每個請求的詳細信息都會插入到我的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