0

クエリ結果をタスクキューに渡そうとしています:

q = models.Spam.all()
results = q.fetch(10)
taskqueue.add(url='/_ah/queue/do-spams', payload=results)

これは機能していません。引数の構造が間違っているか、ペイロードを結果セットにすることができません。

4

2 に答える 2

1

タスクキューに直接追加する代わりに、遅延キューを使用します。遅延キューには、タスクキューと同様の機能があります。遅延キューの重要な機能の1つは、任意のタイプのデータを内部メソッドの1つに渡すことができることです。

延期するメソッド、パラメーター値を指定すると、延期されたキューとappengineがデータへの受け渡しを正しく処理します。

于 2011-02-06T16:21:18.313 に答える
0

taskqueueのドキュメントを読むと、文字列、または少なくとも文字列表現を持つオブジェクトを渡す必要があると思います。

HTTPリクエスト本文としてWebhookに配信されるこのタスクのペイロードデータ。バイナリデータを含む文字列の場合があります。

http://code.google.com/appengine/docs/python/taskqueue/tasks.html#Task

なぜ機能しないのですか?エラーが発生しますか?簡単なテストのために、あなたはそれに合格することを試みることができますstr(results)。実際に文字列が必要な場合は、JSONなどの結果をシリアル化してみてください。

于 2011-02-06T15:44:30.020 に答える