我正在使用 Celery 和运行工人的主管,Redis 作为代理,我遇到了一个问题,Celery 工人显然冻结了,使其无法处理更多任务并导致其在 Redis 中的任务队列填满导致一些内存问题的点。我expires
在调用任务时尝试设置该选项,认为这会利用 Redis 对密钥到期的支持:
some_task.apply_async(args=('foo',), expires=60)
Run Code Online (Sandbox Code Playgroud)
但这不起作用,当我在 Redis CLI 中检查相应的列表时,它一直在扩展 - 也许并不奇怪,因为听起来列表过期不是Redis 中的内置功能。将芹菜文档说,到期时间对应的时间后,“出版”的任务,但我找不到什么“出版”,其实就是任何提及。我假设它指的是将任务添加到 Redis 列表中,所以要么这个假设是错误的,要么发生了我不理解的其他事情(或两者兼而有之)。
任务到期时间我错了吗?如果是这样,有没有办法使消息在 Redis 中过期?