我使用flup作为Django的fastcgi服务器。
请给我解释一下如何使用单例?我不确定我是否很好地理解Flup的线程模型。
发布于 2009-06-12 14:37:53
如果你使用一个分叉的服务器,你将不能拥有一个单例(至少不会有比你的实际上下文寿命更长的单例)。
使用线程服务器,这应该是可能的(但我不太熟悉Django和Web服务器!)。
你有没有尝试过这样的代码(作为一个附加模块):
# Singleton module
_my_singleton = None
def getSingleton():
if _my_singleton == None:
_my_singleton = ...
return _my_singleton在树点("...")当然,你必须添加代码来创建你的单例对象。
这还不是一个高效的代码,但您可以使用它来检查单例是否能与您的框架一起工作。因为单例只有在手头有某种“全局存储”的情况下才有可能。分叉服务器使这变得更加困难。
在这种情况下,“正常的全局存储”不起作用,有不同的可能性可用。您可以使用Pythons序列化工具将单例存储在文件系统上。但当然,这将是更多的开销!
https://stackoverflow.com/questions/650518
复制相似问题