Может ли аргумент полезной нагрузки google.appengine.api.taskqueue быть результатом запроса? - PullRequest
0 голосов
/ 06 февраля 2011

Я пытаюсь передать результат запроса в очередь задач:

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

Это не работает. У меня либо неверная структура аргумента, либо полезные данные не могут быть наборами результатов.

Ответы [ 2 ]

1 голос
/ 06 февраля 2011

Вместо непосредственного добавления в очередь задач я бы использовал отложенную очередь . Отложенные очереди имеют схожую функциональность с очередями задач. Одной из ключевых особенностей отложенных очередей является то, что вы можете передавать данные любого типа одному из ваших внутренних методов.

Вы указываете метод, который хотите отложить, значения параметров, а отложенная очередь и appengine позаботятся о правильной передаче данных.

0 голосов
/ 06 февраля 2011

Из прочтения документации по Taskqueue я подозреваю, что вам нужно передать строку или хотя бы объект, который имеет строковое представление.

Данные полезной нагрузки для этой Задачи, которые будут доставлены в webhook как тело HTTP-запроса. Может быть строкой, содержащей двоичные данные.

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

Почему это не работает? Вы получаете ошибку? Для быстрого теста вы можете попробовать пройти его str(results). Если он действительно ожидает строку, вы можете попробовать сериализовать свои результаты, например, JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...