我正在使用以下堆栈:
我已经设置了一个小应用程序,它使用redis作为主数据库。我只在代码中使用GET,SET,EXISTS和EXPIRE。
在终端中尝试应用时,一切正常。在每个请求中,它检查内容是否可用(EXISTS)。如果不是内容被加载并保存一段时间(SET,EXPIRE)。之后,内容将呈现给用户(GET)。
问题是,只要我通过nginx / uwsgi运行应用程序,经过一段时间后,EXPIRE似乎被忽略了。新内容不是删除值并加载新内容,而是附加到旧内容中 - 因为它似乎不仅仅是一次,而是几十次,导致极大的值,有时会超时。
对我来说最奇怪的事情:一旦我重新启动uwsgi,整个问题就会消失 有什么想法吗?
答案 0 :(得分:0)
我已经明白了!问题是我“回收”了这两个实例:
md = markdown.Markdown(safe_mode="escape", output_format='html4')
h2t = html2text.HTML2Text()
http://github.com/saibotd/hackerhub/blob/master/app.py - >第22,23行
我需要在每个请求中重新创建这些对象,并且它按预期工作。