我有一个部署到Heroku的Django应用,其中一个工作进程正在运行celery(+ 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"}
您知道我可以做些什么来定期清除这些消息吗?
最佳答案
这是解决方案吗?
除了_kombu.bindings.celeryev设置的
我们不能只使用keys命令,因为它是O(N),其中N是DB中的键总数。 TTL在
到期celeryev。而不是del celeryev。可以使用它来使临时的celeryev离线消费者恢复活力,但我不知道这是否值得。
author
关于django - celery 和Redis继续用尽内存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8784282/