我使用python 2.7和django 1.27,我使用芹菜任務。django通過當地人()芹菜任務
我有這種說法
def my_view(request):
do_stuff()
local_1 = 1
local_2 = 4
celery_delayed_task(locals())
return HttpResponse('OK')
這導致了這個錯誤時拋出
Passing locals() fails: a class that defines slots without defining getstate cannot be pickled
所以我想也許我需要創建當地人的副本()字典,因爲任務將被調用時,該視圖不再存在。
我試試這個:
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')
,現在我得到這個錯誤:
Deepcopy of object fails: object.new(cStringIO.StringO) is not safe, use cStringIO.StringO.new()
顯然我這樣做不對,有什麼想法?