Django (Webfaction がホスト) を使用して、次のコードを作成しました。
import time
def my_function(request):
time.sleep(10)
return HttpResponse("Done")
これは、自分の URL www.mysite.com にアクセスすると、Django を介して実行されます。
URL を 2 回入力します。私の見方では、これらは両方とも 10 秒後に終了するはずです。ただし、2 番目の呼び出しは最初の呼び出しを待機し、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 を使用してこれを実行します。