6

我有一个通过 apache/mod_wsgi 托管的 django 实例。我使用pre_savepost_save信号来存储保存前后的值以供以后比较。为此,我使用全局变量来存储pre_save可以在post_save信号处理程序中访问的值。

我的问题是,如果两个请求 A 和 B 同时请求同一个 Web 服务,它会并发吗?B 不应该读取 A 写入的全局变量,反之亦然。

PS:我不对Lock变量使用任何线程。

4

1 回答 1

2

这部分取决于您的mod_wsgi配置。如果将其配置为每个进程只使用一个线程,那么全局变量是安全的——尽管出于各种原因我不建议使用它们。在多线程配置中,如果您使用全局变量,则无法保证请求不会混淆。

您应该能够在pre_save和之间找到更多本地存储所需数据的地方post_save。我建议在您的设计中多考虑一些。

于 2012-11-01T06:25:02.373 回答