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
Delete efface une tâche d'une file d'attente nommée.
func DeleteMulti
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
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
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
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
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
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
NewPOSTTask crée une tâche qui enverra un POST à un chemin avec les données de formulaire spécifiées.