Php睡眠功能延迟?

时间:2016-06-06 01:58:45

标签: php performance delay sleep

假设一个网站“高”'流量,我想使用php sleep(4)函数来避免泛滥。这是一个好主意还是应该使用不同的延迟方式? sleep()保持连接打开,这可能是个问题吗?

我做:

index.php -> stuff.php -> index.php

Stuff.php做某事然后睡觉(4);所以用户在空白屏幕上等待4秒钟,然后返回索引。感谢。

更新:我的敌人都是,黑客,想要一个DOS,并强调人们快速点击搜索按钮,让我们说...这就是为什么我会使用服务器端延迟

2 个答案:

答案 0 :(得分:5)

这不是一个好方法,因为即使在做“睡觉”也是如此。 apache / php仍然占用该连接的OS进程。因此,在流量高的网站上,您将获得大量同时运行的Apache进程,这些进程将占用您所有服务器的RAM。

相反,您可以修改其中一个页面并将一些Javascript代码添加到其中,因此它可能会等待几秒钟,然后通过javascript导航到下一页。这应该可以解决你的问题。

答案 1 :(得分:1)

您无法避免保持连接畅通,否则无法等待。您必须在客户端或服务器端执行此操作。但是,如果您通过nginxphp-fpm运行PHP,那么您应该可以获得比使用Worker MPM的Apache 2和mod_php更好的性能。

但是,sleep()本身效率很高,因此您不必担心它会占用CPU或其他任何东西。有关如何在较低层中实施的详细信息,请参阅here

一般来说,有效等待的最好方法是#34;是尽可能多地使用异步堆栈。