快速的背景 - 我想在.net中构建它,但我的托管服务提供商将收取75美元以启用.net,而且我太紧张而无法支付更多费用。所以php就是这样。我不是非常熟悉php,除了在wordpress中劈开(这是我可能正在实现的地方)。
我需要的是一个随机数生成器(这部分很简单),坐在我的服务器上,每隔x秒创建一个随机数,前提是网站上至少有一个访问者。因此,基本上让某人登陆页面会启动随机数,同时访问者将被提供相同的数字串。那有意义吗?也许我可以在一位访客到达时设置一个标志,停止随后的轮询?
我在考虑通过挂接load(),启动服务并抽出数字来实现第一部分,所有这些都非常直接。如何确保并发访问者不会轮询服务,而是为访问者生成的输出提供服务?我试图说明我的意思如下:
visitor one hits site - polls service 3 5 23 50 29 11 59 84 99 17 34 55
visitor two hits site 11 59 84 99 17 34 55
visitor three 99 17 34 55
希望这有点意义,任何想法都非常感激......
编辑:守护进程是这样的吗?class TheDaemon
{
public function run()
{
while (1) {
// do stuff here
}
}
}
$daemon = new TheDaemon();
$daemon->run();
答案 0 :(得分:1)
您需要一个运行每个x服务器并将您的号码写入文件的cron作业。
此时您只需读取文件并将数字回显给您的用户即可。如果你需要一些代码告诉我
cron.php
文件的代码
$numberToWrite=10;
$numbers=array();
while($numberToWrite--) {
$numbers[]=rand();
}
file_put_contents('yourfile',implode("\n",$numbers));
既然cron用随机数创建了文件,你只需要用以下内容读取它们:
do {
$randomNumbers = file('yourfile');
} while (!isset($randomNumbers[20])); //> A bit of busy-waiting, anyway not significant
注意我在这里使用do来检查文件是否为空并且我使用isset()
因为它比count
整个数组快10倍。
答案 1 :(得分:0)
我认为这一切都取决于你对“并发”的定义。
当第一个访问者访问该站点时,您可以将带有时间戳的字符串写入文本文件或数据库,然后为每个新访问者检查该文件或数据库以及时间戳。如果它在你的时间范围/并发定义范围内,你可以提供现有值,如果没有,你可以用新值替换它。
答案 2 :(得分:0)
将这称为惰性方法,但如果设置一个包含dt和int字段的简单数据库表,则可以预填充整个事物。
然后在任何给定的命中,只需选择与dt> = now()相关联的第一个整数。
答案 3 :(得分:0)
您需要创建一个php守护程序
在此处阅读:http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/