如何在Go中为app引擎任务队列创建任务?

时间:2014-02-23 23:22:45

标签: google-app-engine go

Google的文档省略了最重要的方面:如何创建任务。任何人都可以填写示例代码:

import (
    "appengine/datastore"
    "appengine/taskqueue"
)

func f(c appengine.Context) {
    err := datastore.RunInTransaction(c, func(c appengine.Context) error {
        t := ... // WHY DOES GOOGLE NOT EXPLAIN THIS PART???
        // Use the transaction's context when invoking taskqueue.Add.
        _, err := taskqueue.Add(c, t, "")
        // ...
    })
    // ...
}

2 个答案:

答案 0 :(得分:2)

我认为您需要的内容在datastore transactions的文档中进行了描述。

创建任务所缺少的代码是:

t := &taskqueue.Task{Path: "/path/to/workertask"}

答案 1 :(得分:1)

Task类型的reference表示Task是一个包含10个左右字段的结构,因此您可能不希望自己构建任务。但是,它还提供NewPOSTTask函数(就在下面):

  

NewPOSTTask创建一个Task,它将POST到具有给定表单数据的路径

我同意文档可能会好得多。