您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Google AppEngine(python)中存储配置的好地方

在Google AppEngine(python)中存储配置的好地方

如果您可以将它们嵌入到源代码中,可以这样做,但是如果需要它是可动态配置的,那么数据存储是您的最佳选择。您可以通过将它们缓存在本地内存中来避免获取每个请求的设置。这是一个帮助类:

class Configuration(db.Model):
  _INSTANCE = None

  @classmethod
  def get_instance(cls):
    if not cls._INSTANCE:
      cls._INSTANCE = cls.get_or_insert('config')
    return cls._INSTANCE

只需使用所需的任何配置值对此子类化(或修改类本身)。由于加载的代码在请求之间仍然存在,因此每个应用程序实例只需执行一次访存- 尽管如果您希望能够动态更新配置,则可能需要建立超时。

如果要在有限的时间内缓存内容,最好的选择就是在获取时间戳时简单地存储它:

class Configuration(db.Model):
  CACHE_TIME = datetime.timedelta(minutes=5)

  _INSTANCE = None
  _INSTANCE_AGE = None

  @classmethod
  def get_instance(cls):
    Now = datetime.datetime.Now()
    if not cls._INSTANCE or cls._INSTANCE_AGE + cls.CACHE_TIME < Now:
      cls._INSTANCE = cls.get_or_insert('config')
      cls._INSTANCE_AGE = Now
    return cls._INSTANCE
python 2022/1/1 18:31:42 有214人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶