Cronjob用于删除临时帐户?

时间:2012-04-22 07:34:32

标签: php mysql

我使用网络应用程序的工资很低。

我想允许人们在付费之前试用该应用。

为此,我希望有一个系统可以创建临时用户帐户,然后在30分钟左右后再次删除。

首先想到的是将一个类型为“TINYINT”的列“isTemp”添加到accounts表中,然后设置一个cronjob以每30分钟执行一次查询“DELETE FROM accounts WHERE isTemp = 1”。

然而......我对此有点紧张。我担心早上醒来发现整个账户表都是空的。我意识到这可能是一种非理性的恐惧,但我不喜欢在账户表附近的预定DELETE语句。 :)

对此有何看法?这是应该做的吗?或者我应该重新考虑一下吗?

先谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

最佳解决方案是activeinactive帐户。但是,如果使用当前编码不容易做到这一点,那么DELETE就足够了。我建议在创建用户帐户时创建datetime字段。您可以创建一个简单的cron作业,然后检查signup time + 30 mins或其他类似的内容,然后DELETE。如果这让您担心,请让脚本在最初几天手动通过电子邮件发送给您,并手动执行操作以确保其正常运行。

使用activeinactive的好处是它只是一个简单的bool更改,而不是丢失所有数据。

希望有所帮助!

答案 1 :(得分:0)

问题是,如果用户在第29分钟登录,系统会在30分钟删除它们,即使它们仅处于活动状态1分钟,它们的帐户也会被删除。

你最好做一个“DELETE FROM accounts WHERE isTemp = 1 AND account_created> {30分钟前}

(插入代码以计算超过30分钟前的时间戳)

P.S。 30分钟的临时账户时间不长 - 可能是2小时 -