2014-02-23 57 views
1

谷歌的文檔省略了最重要的方面:如何創建一個任務。任何人都可以完成的示例代碼:如何在Go中爲app引擎任務隊列創建任務?

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, "") 
     // ... 
    }) 
    // ... 
} 

回答

1

referenceTask類型顯示Task是10個左右字段的結構,所以你可能不希望構建一個任務你自己。然而,它也提供了NewPOSTTask功能(僅低於):

NewPOSTTask創建一個任務,將張貼到路徑與給定表單數據

我同意文件可以更好地雖然。

+0

您也可以使用延遲包來處理編碼-https://developers.google.com/appengine/docs/go/taskqueue/delay#Function.Task – mzimmerman

2

我想你需要的東西在文檔爲datastore transactions描述。

因此丟失的代碼創建一個任務是:

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