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