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

Le package Task Queue fournit un client pour le service Task Queue d'App Engine. À l'aide de ce service, les applications peuvent réaliser des tâches en dehors de la requête d'un utilisateur.

Une tâche peut être créée manuellement. Sinon, comme l'opération Task Queue la plus courante consiste à ajouter une seule tâche POST, NewPOSTTask facilite la création des tâches.

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

Variables

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")
)

Fonctions

func Delete

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

Delete efface une tâche d'une file d'attente nommée.

func DeleteMulti

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

DeleteMulti supprime plusieurs tâches d'une file d'attente nommée. Si une tâche donnée n'a pas pu être supprimée, une erreur "appengine.MultiError" est renvoyée. Chaque tâche est supprimée indépendamment ; l'une d'elles ne peut pas être supprimée tandis que les autres sont correctement supprimées.

func ModifyLease

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

ModifyLease modifie le bail d'une tâche, et permet d'obtenir des durées de traitement plus élevés ou d'abandonner le traitement. leaseTime est en secondes et ne doit pas être négatif.

func Purge

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

Purge supprime toutes les tâches d'une file d'attente.

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 représente des statistiques sur une seule file d'attente de tâches.

func QueueStats

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

QueueStats récupère des statistiques sur les files d'attente.

RequestHeaders

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

	TaskPreviousResponse int
	TaskRetryReason      string
	FailFast             bool
}

Les en-têtes Request sont les en-têtes de requêtes HTTP spéciaux disponibles pour envoyer des gestionnaires de requêtes HTTP de tâches. Ces en-têtes sont définis en interne par App Engine. Consultez la page https://cloud.google.com/appengine/docs/standard/go/taskqueue/push/creating-handlers#reading_request_headers pour obtenir une description des champs.

func ParseRequestHeaders

func ParseRequestHeaders(h http.Header) *RequestHeaders

La fonction ParseRequestHeaders analyse les en-têtes de requête HTTP spéciaux disponibles pour envoyer des gestionnaires de requêtes de tâches. Cette fonction ignore silencieusement les valeurs du mauvais 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
}

Les commandes RetryOptions vous permettent de déterminer si vous souhaitez réessayer une tâche, ainsi que l'intervalle entre deux tentatives.

Tâche

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

Task correspond à une tâche à exécuter.

func Add

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

Add ajoute une tâche à une file d'attente nommée. Un nom de file d'attente vide signifie que la file d'attente par défaut sera utilisée. Add renvoie un type Task équivalent avec les valeurs par défaut renseignées, en définissant le champ "Nom de la tâche" sur le nom choisi si, à l'origine, il était vide.

func AddMulti

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

AddMulti ajoute plusieurs tâches à une file d'attente nommée. Un nom de file d'attente vide signifie que la file d'attente par défaut sera utilisée. AddMulti renvoie une tranche de tâches équivalentes avec les valeurs par défaut renseignées, en définissant le champ "Nom de la tâche" sur le nom choisi si, à l'origine, il était vide. Si une tâche donnée n'est pas correctement formée ou ne peut être ajoutée, une erreur "appengine.MultiError" est renvoyée.

func Lease

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

Lease loue des tâches d'une file d'attente. LeaseTime est en secondes. Le nombre de tâches récupérées est maxTasks au plus.

func LeaseByTag

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

LeaseByTag loue des tâches d'une file d'attente, regroupées par tag. Si le tag est vide, les tâches renvoyées sont regroupées en fonction du tag de la tâche avec la date/heure d'exécution la plus ancienne. leaseTime est en secondes. Le nombre de tâches récupérées est maxTasks au plus.

func NewPOSTTask

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

NewPOSTTask crée une tâche qui enverra un POST à un chemin avec les données de formulaire spécifiées.