3

我正在使用以下堆栈:

  • nginx
  • uwsgi
  • 蟒蛇(烧瓶)

我已经建立了一个利用 redis 作为其主数据库的小应用程序。我只在我的代码中使用 GET、SET、EXISTS 和 EXPIRE。

在终端中尝试应用程序时,一切正常。在每次请求时,它都会检查内容是否可用 (EXISTS)。如果不是,则内容会被加载并保存一段时间(SET,EXPIRE)。之后,将内容呈现给用户 (GET)。

问题是,一旦我通过 nginx/uwsgi 运行应用程序,一段时间后 EXPIRE 似乎被忽略了。不是删除值并重新加载它,而是将新内容附加到旧内容 - 因为它似乎不仅是一次,而是几十次,导致非常大的值,有时甚至超时。

对我来说最奇怪的事情:一旦我重新启动 uwsgi,整个问题就消失了。
任何的想法?

4

1 回答 1

0

我想通了!问题是我“回收”了这两个实例:

md = markdown.Markdown(safe_mode="escape", output_format='html4')
h2t = html2text.HTML2Text()

http://github.com/saibotd/hackerhub/blob/master/app.py -> 第 22、23 行

我需要在每个请求中重新创建这些对象,并且它按预期工作。

于 2013-01-14T11:19:46.980 回答