当我在本地测试我的网站时,一切正常。但在生产中,我收到以下错误:Couldn't lease a task: API error 1 (taskqueue: UNKNOWN_QUEUE)
我很确定我的代码是正确的,因为它在本地工作。我最好的猜测是queue.yaml文件有问题,但它很简单:
queue:
- name: daemonQueue
mode: pull
我可能做错了什么?
编辑:
原来入队也失败了:TickTask enqueue error: Failed to insert task: API error 1 (taskqueue: UNKNOWN_QUEUE)
这就是我如何排队的任务。
// Add the task to the queue.
func EnqueueWithName(c sessions.Context, task interface{}, tag string, name string) (err error) {
buffer := new(bytes.Buffer)
err = gob.NewEncoder(buffer).Encode(task)
if err != nil {
return
}
newTask := &taskqueue.Task{
Method: "PULL",
Payload: buffer.Bytes(),
Tag: tag,
Name: name}
newTask, err = taskqueue.Add(c, newTask, "daemonQueue")
return err
}
答案 0 :(得分:2)
您没有在生产中配置队列。确保部署整个应用程序目录,以便queue.yaml
上传。将goapp deploy
或appcfg.py
指向保留app.yaml
和queue.yaml
的目录,而不是直接app.yaml
。