我有一个通过apache / mod_wsgi托管的django实例。我使用pre_save
和post_save
信号来存储保存之前和之后的值,以便以后进行比较。为此,我使用全局变量来存储pre_save
值,这些值可以在post_save
信号处理程序中访问。
我的问题是,如果两个请求A和B同时请求同一个Web服务,那么它是并发的吗? B不应该读取由A写的全局变量,反之亦然。
PS:我不对变量使用任何线程Lock
。
答案 0 :(得分:2)
这部分取决于您的mod_wsgi
配置。如果将其配置为每个进程只使用一个线程,那么全局变量是安全的 - 尽管由于各种原因我不建议使用它们。在多线程配置中,如果使用全局变量,则无法保证请求不会混淆。
您应该能够找到更多本地地点来隐藏pre_save
和post_save
之间所需的数据。我建议你更多地考虑一下你的设计。