我正在观察 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}
对于非 celery 视图,这绝不是问题。我也在使用 johnny-cache,所以我怀疑它可能是罪魁祸首,将 get() 请求发送到 memcache 而不是数据库。有人知道发生了什么吗?