【发布时间】:2018-10-01 12:47:00
【问题描述】:
我想将一些长查询移至 Celery 中的异步任务,然后使用 AJAX 检索该额外信息。现在我得到这样的 QuerySet:
brands = Brand.objects.filter(shops__shop_name__in=[shop])
任务:
@task()
def brand_count(querystr):
querystr.annotate(amount_of_products=Count('products'))
我想做here:
task_run = brand_count.delay(brands)
问题是:如何将 QuerySet 传递给 Celery 任务? 现在它会抛出一个无法完成的错误。
我有found pickle 可能在这里使用,但我无法找到正确的使用方法。特别是-query = pickle.loads(s) 中的# Assuming 's' is the pickled string. 是什么意思。
【问题讨论】:
标签: python django asynchronous celery pickle