0

我使用 Flup 作为 Django 的 fastcgi 服务器。

请向我解释如何使用单例?我不确定我是否理解 Flup 的线程模型。

4

1 回答 1

0

如果您使用分叉服务器,您将根本无法拥有单例(至少没有比您的实际上下文寿命更长的单例)。

使用线程服务器,它应该是可能的(但我不太喜欢 Django 和 Web 服务器!)。

您是否尝试过这样的代码(作为附加模块):

# Singleton module
_my_singleton = None

def getSingleton():
   if _my_singleton == None:
      _my_singleton = ...
   return _my_singleton

当然,在树点(“...”)处,您必须添加编码来创建单例对象。

这还不是生产性代码,但是您可以使用它来检查单例是否可以与您的框架一起使用。因为单例只有在手头有某种“全局存储”的情况下才有可能。分叉的服务器使这变得更加困难。

如果“正常的全局存储”不起作用,则有另一种可能性。您可以使用 Python 的序列化工具将您的单例存储在文件系统上。但是,当然,这实际上会增加更多开销!

于 2009-06-12T14:37:52.933 回答