我目前正在使用 DJango - apache 安装(在 mod_wsgi 上)来运行一个托管 Intranet 纸牌游戏的网站(项目),其规则非常复杂,以至于每个用户只需要 1 个主列表 + dict 分数数据结构。单个用户的分数也会受到其他用户操作的影响。我正在使用我在 urls.py 中实例化的 Score 类,所有玩家/用户都访问这个类的对象 [scObj = Scorer('Spades') ]。在这个 obj 内部有玩家动作、分数更新等的字典。
class Scorer:
def __init__(self, suitname):
self.__suitname = suitname
scorer 类单独存储在 Scorer.py 中
scObjs = (Scorer('Spades'), Scorer('Hearts'), Scorer('Clubs'), Scorer('Diamonds'),)
对象在 urls.py 中创建
该模型在 DEV 部署中完美运行。当我在 apache 中移动到 PROD 时,这坏了(因为创建了多个 scObj 实例,因此玩家 1 对玩家 2 的移动的分数更新不会反映在玩家 3 对玩家 2 的不同移动中) . 我需要模拟单例类行为/全局 scObj 行为,这是我无法做到的。我在worker - mpm - 多线程模式下运行apache,所以我认为由于多进程而存在多个scObj副本的问题不存在。
问题与 mod_wsgi 有关吗?