PHP后端如何在x秒后删除MySql条目?

PHP后端如何在x秒后删除MySql条目?,php,Php,我想创建一个注册系统,给用户120秒的时间通过电子邮件验证他们的注册。如果用户未能及时完成此操作,则必须自动删除为此注册创建的MySql条目 编辑:Cronjob是不可能的。MySql条目需要在客户端发出注册后120秒删除。cronjob不能做到这一点 我曾经尝试过睡眠,但是我不能得到我想要的结果,像这样的东西 <?php $seconds = 0; add(); function add() { $seconds++; if($seconds < 6 ) {

我想创建一个注册系统,给用户120秒的时间通过电子邮件验证他们的注册。如果用户未能及时完成此操作,则必须自动删除为此注册创建的MySql条目

编辑:Cronjob是不可能的。MySql条目需要在客户端发出注册后120秒删除。cronjob不能做到这一点

我曾经尝试过睡眠,但是我不能得到我想要的结果,像这样的东西

<?php
$seconds = 0;
add();
function add() {
    $seconds++;
    if($seconds < 6 ) {
        sleep(1);
        add();
    }   
    echo $seconds;
}
?>

没有我想象的那么好。递归函数出于某种原因创建了一个无限循环

有没有一种方法可以请求php在120秒后执行函数而不使用睡眠。理想情况下,用户不应该注意到后端的计时器,它应该不会影响他


如何实现这一点?

当用户尝试提交验证时,您可以检查它-如果时间已过,那么您的代码可以简单地拒绝接受验证信息。自动更新数据库不需要定时任务


(您还可以有一个“清理”cron作业,该作业按计划运行,以删除任何未及时得到验证的记录)。

为什么不为此使用cronjob?这将比这样一个阻塞代码工作得更好。我想到了这一点,但我对php中的cronjobs一无所知。我想也许有更简单的方法?如果没有,我很乐意举一个使用cronjob的例子。有很多教程,为什么不阅读其中的任何一个:)特别是如果第一个进程(使用您的代码)死亡或超时或失败,cronjob每一两分钟运行一次以清除注册尝试是的,我研究了它。克朗乔仍然不是我想要的。验证时间需要为注册发生后120秒。cronjob无法做到这一点。您可以在用户尝试提交验证时进行检查-如果时间已过,那么您的代码可以简单地拒绝接受验证信息。自动更新数据库不需要定时任务。(然后,您还可以有一个“清理”cron作业,该作业按计划运行,以删除任何未及时得到验证的记录)。附言2分钟是相当苛刻的…原因是什么?通常,由于许多不在您(或收件人)控制范围内的原因,电子邮件的发送时间甚至可能比发送时间长得多。