Ralf
Ralf

Reputation: 2652

How to create a task for app engine task queue in Go?

Google's docs omit the most important aspect: How a Task is created. Can anybody complete the sample code:

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

Upvotes: 1

Views: 626

Answers (2)

miltonb
miltonb

Reputation: 7385

I think what you need is described in the docs for datastore transactions.

So the missing code to create a task is:

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

Upvotes: 2

Tyler
Tyler

Reputation: 22126

The reference for the Task type shows that Task is a struct with 10 or so fields, so you probably don't want to construct a Task yourself. However, it also provides the NewPOSTTask function (just below that):

NewPOSTTask creates a Task that will POST to a path with the given form data

I agree the documentation could be much better though.

Upvotes: 1

Related Questions