每X秒生成一次数据(无论用户活动如何)?

时间:2011-12-07 13:00:39

标签: php random timer generator

如何在没有用户活动的情况下生成数据对我来说从未如此清晰。假设我正在进行抽奖,人们可以在线查看中奖彩票号码。 此随机数必须在特定时间自动生成,并且每个访问者都应该相同。怎么做的?

我想我可以使用一个PHP脚本来检索之前的数字并检查它是否超过7天。如果是,则脚本将生成一个新数字并存储它,因此当其他用户访问该页面时将检索该数字,在这种情况下,该数字将仅显示为不超过7天。

这种做法可能会导致多个用户同时尝试访问文件或覆盖由/为其他访问者同时生成的数据时出现问题。我认为如果可以独立于用户活动生成和存储数字会更好,所以PHP脚本的唯一任务就是阅读它

任何想法都会非常感激!

P.S:我正在使用简单的虚拟主机,并且实际上无法访问服务器,我猜不能运行.bat或.exe。此外,标签可能有点不准确,因为我不知道应该用什么来解决这个问题。

2 个答案:

答案 0 :(得分:4)

使用某种调度程序在给定时间执行任务。一个这样的调度程序称为cron,安装在大多数类Unix环境中。

还有基于云的计划程序,它们会根据您选择的计划调用您的URL。

如果您的托管服务提供商不提供此服务(大部分都是!),请尝试搜索online cronjobhosted cron或类似内容(“cronjob”是由cron守护程序执行的一项作业)。

答案 1 :(得分:1)

由于你有简单的托管,你不太可能像你说的那样访问'首选'方法(计划任务,运行服务等)。

因此IMO您最好的选择是测试上次更新该值的日期+时间,如果经过了适当的时间,则在显示之前更新它。

为了解决在更新之前碰巧碰到网页的用户显示“陈旧信息”的问题,您可以显示带有值(彩票号?)的日期信息 - 例如“2011年12月3日星期六的数字:1 5 10”,以便用户知道他们在看什么。

作为额外的,如果用户恰好在更新到期时正在查看页面,您可以使用该页面上的javascript来检查日期和时间并更新显示的值(刷新页面或使用ajax)。