小编fak*_*nif的帖子

如何在django-celery中使用.delay()方法?

我想使用.delay来实现异步行为.使用它的主要原因是为了加快我的观点.我做错了吗?如果是这样,我该怎么做呢?

以下是示例代码:

View.py

@cache_page(60*60*24)
def my_view(request):
    something ..... .... ....
    a = SomeModel.objects.get(pk=id)
    data = celery_task.delay(a)
    return dumpjson(status='ok', data=data, callback=callback)
Run Code Online (Sandbox Code Playgroud)

Task.py

def celery_task(a):
    res = request.get('http:sample.sample.com/feed/result' params={'abc': 'abc'})
    return {'response': res}
Run Code Online (Sandbox Code Playgroud)

如果我从celery_task带来响应,它会显示一些guid(1b52f519-64cb-43da-844a-2886bcccb9bc),错误是这样的:

<EagerResult: 1b52f519-64cb-43da-844a-2886bcccb9bc> is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

python django celery django-celery

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

celery ×1

django ×1

django-celery ×1

python ×1