使用 Django(由 Webfaction 托管),我有以下代码
import time
def my_function(request):
time.sleep(10)
return HttpResponse("Done")
当我访问我的网址 www.mysite.com 时,这是通过 Django 执行的
我输入了两次网址,紧随其后。在我看来,这两个都应该在 10 秒后完成。但是,第二个调用等待第一个调用并在 20 秒后完成。
但是,如果我输入一些虚拟 GET 参数,www.mysite.com?dummy=1 和 www.mysite.com?dummy=2,那么它们都会在 10 秒后完成。因此,它们可以同时运行。
就好像 sleep() 的范围在某种程度上是全球性的?也许输入参数会使它们作为不同的进程而不是相同的进程运行???
它由 Webfaction 托管。httpd.conf 有:
KeepAlive Off
Listen 30961
MaxSpareThreads 3
MinSpareThreads 1
ServerLimit 1
SetEnvIf X-Forwarded-SSL on HTTPS=1
ThreadsPerChild 5
我确实需要能够使用 sleep() 并相信它不会停止一切。那么,发生了什么以及如何解决它?
编辑:Webfaction 使用 Apache 运行它。