我正在尝试将查询结果传递给任务队列:
q = models.Spam.all()
results = q.fetch(10)
taskqueue.add(url='/_ah/queue/do-spams', payload=results)
这不起作用。我要么参数结构错误,要么有效负载不能是结果集。
答案 0 :(得分:1)
我不会直接添加到任务队列,而是使用延迟queue。延迟队列具有与任务队列类似的功能。延迟队列的一个关键特性是您可以将任何类型的数据传递给您的一个内部方法。
指定要延迟的方法,参数值以及延迟队列和appengine负责正确传递数据。
答案 1 :(得分:0)
通过阅读taskqueue上的文档,我怀疑你需要传递一个字符串,或者至少是一个具有字符串表示的对象。
此任务的有效内容数据将作为HTTP请求正文传递给webhook。可以是包含二进制数据的字符串。
http://code.google.com/appengine/docs/python/taskqueue/tasks.html#Task
为什么不工作?你收到错误了吗?对于快速测试,您可以尝试传递它str(results)
。如果确实需要字符串,您可以尝试序列化结果,例如JSON。