データベーステーブルにデータを書き込む関数でセロリを使用しています。
django-mutantを使用して動的に作成するため、このテーブルには models.py 内に関連モデルがありません。
タスクを実行すると、動的テーブルに正しく書き込まれますが、タスクの最後に次のエラーが発生します。
[2013-07-10 09:10:45,707: CRITICAL/MainProcess] Task topology_py.Functions.Functions.objectAggregate[aff70510-1e93-4610-b08c-c3675c92afe9] INTERNAL ERROR: PicklingError("Can't pickle <class 'mutant.apps.tss.models.1_tmp'>: import of module mutant.apps.tss.models failed",)
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/celery/task/trace.py", line 261, in trace_task
for callback in task_request.callbacks or []]
File "/usr/lib/python2.7/site-packages/celery/canvas.py", line 197, in apply_async
return self._apply_async(args, kwargs, **options)
File "/usr/lib/python2.7/site-packages/celery/app/task.py", line 472, in apply_async
**options)
File "/usr/lib/python2.7/site-packages/celery/app/amqp.py", line 249, in publish_task
**kwargs
File "/usr/lib/python2.7/site-packages/kombu/messaging.py", line 157, in publish
compression, headers)
File "/usr/lib/python2.7/site-packages/kombu/messaging.py", line 233, in _prepare
body) = encode(body, serializer=serializer)
File "/usr/lib/python2.7/site-packages/kombu/serialization.py", line 170, in encode
payload = encoder(data)
File "/usr/lib/python2.7/site-packages/kombu/serialization.py", line 356, in dumps
return dumper(obj, protocol=pickle_protocol)
PicklingError: Can't pickle <class 'mutant.apps.tss.models.1_tmp'>: import of module mutant.apps.tss.models failed
セロリが検索しているモデルは、 tss1_tmp
という名前のアプリには保存されていませんが、ミュータントアプリ テーブル内に保存されています。
私の問題は、この関数をサブタスクとして別のサブタスクにチェーンすると、セロリが最初のサブタスクの最後にこのエラーで終了することです!
このモデルの場所をセロリに伝える方法、またはこのエラーをスキップして次のサブタスクに進む方法はありますか?
前もって感謝します。
編集:現時点では、5 つの不変サブタスクを使用して、5 つの関数をチェーンで実行できます。それらは正しく機能し、動的テーブルを正しく埋めますが、最初のものと最初のものだけが説明されているエラーを生成し続けます...彼らが同じ方法で動的モデル?