Skip to main content
 首页 » 编程设计

python之变量的 mod_python 缓存

2025年05月04日14cyq1162

我正在使用 mod_python 在 Apache 中运行 Trac。我正在开发一个插件,但不确定如何存储/缓存全局变量。

我是 python 的新手,用 google 搜索了这个主题,发现 mod_python 缓存了 python 模块(我认为)。但是,我希望在重新启动 Web 服务时重置缓存,但似乎没有。我这么说是因为我有一个全局变量,它是一个列表,我测试列表以查看值是否存在,如果不存在,则添加它。我第一次运行它时,它向列表中添加了三个条目。随后,该列表从头开始有三个条目。

例如:

globalList = [] 
 
class globalTest: 
 
  def addToTheList(itemToAdd): 
      print(len(globalTest)) 
      if itemToAdd not in globalList: 
          globalList.append(itemToAdd) 
 
  def doSomething(): 
    addToTheList("I am new entry one") 
    addToTheList("I am new entry two") 
    addToTheList("I am new entry three") 

上面的代码只是我正在做的一个例子,而不是实际的代码 ;-)。但本质上 doSomething() 方法是由 Trac 调用的。第一次运行时,它添加了所有三个条目。现在 - 即使在重新启动 Web 服务器之后,len(globalList) 命令始终为 3。

我怀疑答案可能是我的 session (以及全局变量)正在被缓存,因为当我在网络服务器重启后刷新 Trac 中的页面时,Trac 会记住我的登录详细信息。如果是这种情况 - 我如何强制清除缓存。请注意,我不想手动重置 globalList 变量,即 globalList.length = 0

任何人都可以提供有关正在发生的事情的任何见解吗? 谢谢

请您参考如下方法: