全局变量在Amazon Web Service中不起作用

时间:2011-08-16 08:10:51

标签: python django apache2 amazon-web-services webfaction

我在Amazon Web Service中有两个处理程序。我想在两者中共享一些数据,所以我使用了全局变量。其中一个用于获取某个值并将其放入全局变量时,另一个名为so的处理程序可以使用与全局变量中设置的值相同的值,但是它在另一个处理程序中给出了默认值,我检查了它是否设置了值但是在另一个中,它给出的是默认值。另一个重要的事情是相同的代码在webfactional中运行完美,但相同的代码没有在AWS中运行。请帮助我必须做的事情,并提前感谢。这里的ma代码是:

ipid_global = 0
uhid_global = 0

def patient_search:

     global ipid_global
     global uhid_global

     patient  = PatientInfo.objects.get(ip_id__iexact=ip_id)
     dis_advice  = PatientAdvice.objects.get(ip_id__iexact=ip_id)

     ipid_global = int(patient.ip_id)
     uhid_global = str(patient.uh_id)



def patient(request):

        global ipid_global
        global uhid_global

        ip_id = ipid_global
        uh_id = uhid_global

        return HttpResponse(ipid_global)
实际上它是正确的...

1 个答案:

答案 0 :(得分:1)

永远不要这样做。

在制作中,Django(我认为这是Django,尽管你没有这么说 - 我已将它添加到标签中)在多进程环境中运行。每个进程都有自己的全局变量副本。 无法确保后续请求由同一进程提供。

如果您需要在请求之间保持状态,请将其保存在会话中,或者将其明确作为URL参数传递。