Lorsqu’il est utilisé avec uwsgi, redis la valeur APPENDs au lieu de la paramétrer

J’utilise la stack suivante:

J’ai mis en place une petite application qui utilise redis comme firebase database principale. Je n’utilise que GET, SET, EXISTS et EXPIRE dans mon code.

Lorsque vous essayez l’application dans le terminal, tout fonctionne bien. À chaque demande, il vérifie si le contenu est disponible (EXISTS). Si ce n’est pas le cas, le contenu est chargé et enregistré pendant un moment (SET, EXPIRE). Après cela, le contenu est présenté à l’utilisateur (GET).

Le problème est que dès que je lance l’application via nginx / uwsgi, après un certain temps, EXPIRE semble être ignoré. Au lieu de supprimer la valeur et de la charger à nouveau, le nouveau contenu est ajouté à l’ancien – comme il semble non seulement une fois, mais comme des dizaines de fois, ce qui entraîne des valeurs extrêmement grandes et parfois des dépassements de délai.

Chose la plus étrange pour moi: toute la question disparaît dès que je redémarre uwsgi.
Une idée?

J’ai compris! Le problème était que je “recyclais” ces deux cas:

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

http://github.com/saibotd/hackerhub/blob/master/app.py -> lignes 22, 23

Je dois recréer ces objects à chaque requête et cela fonctionne comme prévu.