每次执行完后 TTL 变成了-1 ,但数据会一直残留着。该怎么解决?
1
starsoi 2016-08-24 21:36:03 +08:00 1
用 AsyncResult 对象的 forget()方法
result = some_task.delay() result.forget() |
2
julyclyde 2016-08-24 22:54:27 +08:00 1
残留的是 result 还是什么?
|
3
Phant0m 2016-08-24 23:42:32 +08:00 1
设置执行结果过期时间 “ CELERY_TASK_RESULT_EXPIRES ”
|
4
woostundy OP @julyclyde 残留的是 result ,但 result.forget()并不起作用。而且我将 CELERY_TASK_RESULT_EXPIRES 设置成了 30 ,依然没有效果。
|
5
woostundy OP |
6
woostundy OP 如果不设置 CELERY_TASK_RESULT_EXPIRES ,默认超时应该是 24 小时,奇怪的是 24 小时后 result 的 TTL 变成了-1 ,却没有被清除。
|
8
julyclyde 2016-08-25 11:45:11 +08:00
@woostundy 你在它过期之前观察一下 TTL 是不是逐步下降的。如果逐步下降,那就没 celery 什么事了,是 redis 的职责
|
9
fanzheng 2016-08-25 12:58:11 +08:00
我现在是把 result 的 broker 删除了的,不保存 result ,或者用 sqlite 算了。
|