使用PHP,如何每100次访问触发一次?

时间:2011-09-28 16:50:50

标签: php

感谢您阅读我的问题,以下是我正在努力实现的目标:

  1. 我有一个人们访问的PHP网页。

  2. 我想触发一个大约每100次访问(平均)到我的PHP页面的工作。频率不一定非常准确,但从长远来看,统计数据应接近100左右。

  3. 我无法写入磁盘,也无法使用数据库(由于负载/性能问题)。所以我认为这必须在PHP代码中完成,有些如何将它与时间联系起来。 (如生成随机数,然后将其与时间匹配,如果匹配执行触发的作业,如果不匹配,则继续)。

  4. 我愿意接受任何想法或建议。如果可能,请提供示例代码。谢谢!

2 个答案:

答案 0 :(得分:4)

做一些像:

<?php
  $random = mt_rand(1,100);
  if ($random == 100) {
    trigger_your_job_here;
  }
?>

修改:我最初使用的是rand(),但Alix Axel编辑了我的回复以使用mt_rand()。当然,这是正确的做法,因为mt_rand()不仅比rand()更快(根据PHP的文档,只有四分之一),它还修复了{{1}的一些不足之处。在各种系统上(比如在Windows上,你只能得到最多32767的随机数)。

当然,两者都是伪随机数生成器,并没有提供适当的随机数,但为了您的目的,这就足够了。例如,你不是在挑选彩票号码。

答案 1 :(得分:0)

如果您的托管配置支持,您可以写入RAM磁盘或memcached。那就是说,您是否尝试过写入(普通)磁盘以查看它是否真的导致性能问题?这里最好的方法是尝试并获得一些指标。