我有一个部署到Heroku的Django应用程序,其中一个工作进程运行芹菜(+ celerycam用于监控)。我使用RedisToGo的Redis数据库作为经纪人。我注意到Redis的内存不足。
这是我的procfile的样子:
web: python app/manage.py run_gunicorn -b "0.0.0.0:$PORT" -w 3
worker: python lipo/manage.py celerycam & python app/manage.py celeryd -E -B --loglevel=INFO
这是KEYS'*'的输出:
celeryev.643a99be-74e8-44e1-8c67-fdd9891a5326
正在填写这些消息:
{"sw_sys": "Linux", "clock": 1, "timestamp": 1325914922.206671, "hostname": "064d9ffe-94a3-4a4e-b0c2-be9a85880c74", "type": "worker-online", "sw_ident": "celeryd", "sw_ver": "2.4.5"}
知道我可以做些什么来定期清除这些消息吗?
答案 0 :(得分:1)
这是一个解决方案吗?
我们不能只使用keys命令,因为它是O(N),其中N是DB中键的总数。在redis上TTL可能很棘手< 2.1虽然。
到期celeryev。而不是del celeryev。可以用来让临时离线的celeryev消费者复活,但我不知道它是否值得。