このエラーが発生する次のコードがあります。
TypeError('smallTask() takes exactly 1 argument (2 given)',)
@task
def master():
count = 0
obj = { 'var1':'val1', 'var2':'val2' }
while count < 10:
subtask('smallTask',obj).apply_async()
count += 1
@task(name='smallTask')
def smallTask(obj):
print obj
関数に辞書を渡すには、 **kwargs を使用する必要があると思いますが、それを行うと、関数が引数を取らずに 2 つ指定されているというエラーが表示されます。
ここでの問題は、デコレータ (これについての基本的な理解はあるが、問題を解決するのに十分ではない) または Celery のサブタスク関数のいずれかにあると思います。
私は本当に先に進むのに十分なPythonの知識を持っていません..何が起こっているのか、そしてsmallTask関数に辞書を渡す方法を誰か教えてもらえますか?