Paket google.golang.org/appengine/taskqueue (v1.6.8)

Das Paket "taskqueue" bietet einen Client für den taskqueue-Dienst von App Engine. Mit diesem Dienst können Anwendungen Aufgaben ausführen, die außerhalb des Bereichs eines Nutzer-Requests liegen.

Eine Aufgabe kann manuell erstellt werden. Da der häufigste taskqueue-Vorgang darin besteht, eine einzelne POST-Aufgabe hinzuzufügen, kann zur einfachen Erstellung alternativ NewPOSTTask verwendet werden.

t := taskqueue.NewPOSTTask("/worker", url.Values{
    "key": {key},
})
taskqueue.Add(c, t, "") // add t to the default queue

Variablen

ErrTaskAlreadyAdded

var (
	// ErrTaskAlreadyAdded is the error returned by Add and AddMulti when a task has already been added with a particular name.
	ErrTaskAlreadyAdded = errors.New("taskqueue: task has already been added")
)

Funktionen

func Delete

func Delete(c context.Context, task *Task, queueName string) error

Mit "Delete" wird eine Aufgabe aus einer benannten Warteschlange gelöscht.

func DeleteMulti

func DeleteMulti(c context.Context, tasks []*Task, queueName string) error

Mit "DeleteMulti" werden mehrere Aufgaben aus einer benannten Warteschlange gelöscht. Wenn eine bestimmte Aufgabe nicht gelöscht werden konnte, wird der Fehler "appengine.MultiError" zurückgegeben. Jede Aufgabe wird unabhängig von den anderen gelöscht; das Löschen einer Aufgabe kann fehlschlagen, während die anderen erfolgreich gelöscht werden.

func ModifyLease

func ModifyLease(c context.Context, task *Task, queueName string, leaseTime int) error

Mit "ModifyLease" wird die Freigabe einer Aufgabe geändert. Wird verwendet, um mehr Verarbeitungszeit anzufordern oder die Verarbeitung zu beenden. "leaseTime" wird in Sekunden angegeben und darf nicht negativ sein.

func Purge

func Purge(c context.Context, queueName string) error

Mit "Purge" werden sämtliche Aufgaben aus einer Warteschlange entfernt.

QueueStatistics

type QueueStatistics struct {
	Tasks     int       // may be an approximation
	OldestETA time.Time // zero if there are no pending tasks

	Executed1Minute int     // tasks executed in the last minute
	InFlight        int     // tasks executing now
	EnforcedRate    float64 // requests per second
}

"QueueStatistics" stellt Statistiken zu einer einzelnen Aufgabenwarteschlange dar.

func QueueStats

func QueueStats(c context.Context, queueNames []string) ([]QueueStatistics, error)

Mit "QueueStats" werden Statistiken zu Warteschlangen abgerufen.

RequestHeaders

type RequestHeaders struct {
	QueueName          string
	TaskName           string
	TaskRetryCount     int64
	TaskExecutionCount int64
	TaskETA            time.Time

	TaskPreviousResponse int
	TaskRetryReason      string
	FailFast             bool
}

RequestHeaders sind spezielle HTTP-Anfrageheader, die für HTTP-Anfragen-Handler für Push-Aufgaben verfügbar sind. Diese Header werden intern von App Engine festgelegt. Eine Beschreibung der Felder finden Sie unter https://cloud.google.com/appengine/docs/standard/go/taskqueue/push/creating-handlers#reading_request_headers.

func ParseRequestHeaders

func ParseRequestHeaders(h http.Header) *RequestHeaders

ParseRequestHeaders parst die speziellen HTTP-Anfrageheader, die für Anfragen-Handler für Push-Aufgaben verfügbar sind. Diese Funktion ignoriert Werte im falschen Format.

RetryOptions

type RetryOptions struct {
	// Number of tries/leases after which the task fails permanently and is deleted.
	// If AgeLimit is also set, both limits must be exceeded for the task to fail permanently.
	RetryLimit int32

	// Maximum time allowed since the task's first try before the task fails permanently and is deleted (only for push tasks).
	// If RetryLimit is also set, both limits must be exceeded for the task to fail permanently.
	AgeLimit time.Duration

	// Minimum time between successive tries (only for push tasks).
	MinBackoff time.Duration

	// Maximum time between successive tries (only for push tasks).
	MaxBackoff time.Duration

	// Maximum number of times to double the interval between successive tries before the intervals increase linearly (only for push tasks).
	MaxDoublings int32

	// If MaxDoublings is zero, set ApplyZeroMaxDoublings to true to override the default non-zero value.
	// Otherwise a zero MaxDoublings is ignored and the default is used.
	ApplyZeroMaxDoublings bool
}

Mit "RetryOptions" können Sie steuern, ob eine Aufgabe und die Backoff-Intervalle zwischen Versuchen wiederholt werden sollen.

Aufgabe

type Task struct {
	// Path is the worker URL for the task.
	// If unset, it will default to /_ah/queue/

"Task" stellt eine auszuführende Aufgabe dar.

func Add

func Add(c context.Context, task *Task, queueName string) (*Task, error)

Mit "Add" wird die Aufgabe zu einer benannten Warteschlange hinzugefügt. Bei einem leeren Warteschlangennamen wird die Standardwarteschlange verwendet. "Add" gibt eine gleichwertige Aufgabe mit ausgefüllten Standardwerten zurück. Dazu gehört auch, dass das Feld "Name" der Aufgabe auf den ausgewählten Namen gesetzt wird, wenn das Original leer war.

func AddMulti

func AddMulti(c context.Context, tasks []*Task, queueName string) ([]*Task, error)

Mit "AddMulti" werden einer benannten Warteschlange mehrere Aufgaben hinzugefügt. Bei einem leeren Warteschlangennamen wird die Standardwarteschlange verwendet. "Add" gibt ein Segment von gleichwertigen Aufgaben mit ausgefüllten Standardwerten zurück. Dazu gehört auch, dass das Feld "Name" jeder Aufgabe auf den ausgewählten Namen gesetzt wird, wenn das Original leer war. Wenn eine bestimmte Aufgabe falsch formuliert ist oder nicht hinzugefügt werden konnte, wird der Fehler "appengine.MultiError" zurückgegeben.

func Lease

func Lease(c context.Context, maxTasks int, queueName string, leaseTime int) ([]*Task, error)

Freigaben von Aufgaben aus einer Warteschlange. Die Freigabezeit erfolgt in Sekunden. Die Anzahl der abgerufenen Aufgaben entspricht maximal dem Wert "maxTasks".

func LeaseByTag

func LeaseByTag(c context.Context, maxTasks int, queueName string, leaseTime int, tag string) ([]*Task, error)

Mit "LeaseByTag" werden Aufgaben aus einer Warteschlange gruppiert nach Tag freigegeben. Wenn das Tag leer ist, werden die zurückgegebenen Aufgaben nach dem Tag der Aufgabe mit der frühesten ETA gruppiert. "leaseTime" wird in Sekunden angegeben. Die Anzahl der abgerufenen Aufgaben entspricht maximal dem Wert "maxTasks".

func NewPOSTTask

func NewPOSTTask(path string, params url.Values) *Task

"NewPOSTTask" erstellt eine Aufgabe, die einen "POST"-Vorgang in einen Pfad mit den angegebenen Formulardaten ausführt.