在Celery任务中的Django get()调用返回32个匹配项

时间:2013-04-19 17:24:00

标签: django celery django-celery

我正在观察Celery的一个非常奇怪的错误。我的任务文件中的一些代码会产生一些我确定应该返回1个结果的get请求,但它们有时会返回32个结果。发生此错误时,返回的结果数始终为32。

以下是两个不同的get调用的例外情况:

MultipleObjectsReturned: get() returned more than one User -- 
  it returned 32! Lookup parameters were {'id__exact': 9503}

MultipleObjectsReturned: get() returned more than one Avatar -- 
   it returned 32! Lookup parameters were {'id__exact': 372}

对于非芹菜视图,这绝不是问题。我也在使用johnny-cache,所以我怀疑它可能是罪魁祸首,向memcache而不是数据库发出get()请求。 任何人都知道发生了什么事?

1 个答案:

答案 0 :(得分:2)

事实证明这与使用johnny-cache和celery有关。删除johnny缓存,我们不再有任何问题。