我正在使用 python 2.7 和 django 1.27,我正在使用 celery 执行任务。
我有这个观点
def my_view(request):
do_stuff()
local_1 = 1
local_2 = 4
celery_delayed_task(locals())
return HttpResponse('OK')
这导致了这个异常
传递locals()失败:不能pickle定义slot而不定义getstate的类
所以我想也许我需要创建 locals() 字典的副本,因为当视图不再存在时将调用该任务。
我试试这个:
def my_view(request):
do_stuff()
local_1 = 1
local_2 = 4
locals_dict = copy.deepcopy(locals())
celery_delayed_task(locals_dict)
return HttpResponse('OK')
现在我得到了这个错误:
对象的深层复制失败:对象。new (cStringIO.StringO) 不安全,请使用 cStringIO.StringO。新()
显然我做错了,有什么想法吗?