感谢您阅读我的问题,以下是我正在努力实现的目标:
我有一个人们访问的PHP网页。
我想触发一个大约每100次访问(平均)到我的PHP页面的工作。频率不一定非常准确,但从长远来看,统计数据应接近100左右。
我无法写入磁盘,也无法使用数据库(由于负载/性能问题)。所以我认为这必须在PHP代码中完成,有些如何将它与时间联系起来。 (如生成随机数,然后将其与时间匹配,如果匹配执行触发的作业,如果不匹配,则继续)。
我愿意接受任何想法或建议。如果可能,请提供示例代码。谢谢!
答案 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。那就是说,您是否尝试过写入(普通)磁盘以查看它是否真的导致性能问题?这里最好的方法是尝试并获得一些指标。