在尝试测试一些东西时,使用 Django + apache2 + mod_wsgi3.3。通过运行定期产生结果,我发现了两个不同的结果。在嵌入和守护程序模式之间。
当尝试使用嵌入式模式时,即没有 WSGIDaemonProcess,使用 WSGIProcessGroup 指令。下面提到的函数一个接一个地产生结果,每个数字都会在 2 秒的睡眠后打印在浏览器视图上。
def yielder(request):
gen = testYielding()
return HttpResponse(gen)
def testYielding():
yield "3"
time.sleep(2)
yield "4"
time.sleep(2)
yield "5"
time.sleep(2)
yield "6"
time.sleep(2)
yield "7"
尽管启用了 DaemonMode,但此视图会在 8 秒后整理完整的响应后响应数据,并将所有数字打印在一起并且不会产生相同的结果,一个接一个。
这种行为正确吗?有没有办法确保像嵌入式模式一样产生守护程序模式响应?