El paquete taskqueue

import "google.golang.org/appengine/taskqueue"

Introducción

El paquete taskqueue proporciona un cliente para el servicio taskqueue de App Engine. Cuando se usa este servicio, las aplicaciones pueden realizar trabajos por fuera de la solicitud de un usuario.

Como alternativa, una tarea se puede elaborar de forma manual, pero dado que la operación de taskqueue más común es agregar una sola tarea POST, NewPOSTTask facilita el proceso.

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

Índice

Variables
func Add(c context.Context, task *Task, queueName string) (*Task, error)
func AddMulti(c context.Context, tasks []*Task, queueName string) ([]*Task, error)
func Delete(c context.Context, task *Task, queueName string) error
func DeleteMulti(c context.Context, tasks []*Task, queueName string) error
func Lease(c context.Context, maxTasks int, queueName string, leaseTime int) ([]*Task, error)
func LeaseByTag(c context.Context, maxTasks int, queueName string, leaseTime int, tag string) ([]*Task, error)
func ModifyLease(c context.Context, task *Task, queueName string, leaseTime int) error
func Purge(c context.Context, queueName string) error
func QueueStats(c context.Context, queueNames []string) ([]QueueStatistics, error)
type QueueStatistics
type RetryOptions
type Task
    func NewPOSTTask(path string, params url.Values) *Task

Variables

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

func Add

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

Add agrega la tarea a una cola con nombre. Si el nombre de cola está vacío, se usará la cola predeterminada. Add muestra una tarea equivalente con los valores predeterminados rellenados, incluida la configuración del campo Nombre de la tarea como el nombre elegido si el original estaba vacío.

func AddMulti

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

AddMulti agrega múltiples tareas a una cola con nombre. Si el nombre de cola está vacío, se usará la cola predeterminada. AddMulti muestra una porción de tareas equivalentes con los valores predeterminados rellenados, incluida la configuración del campo Nombre de cada tarea como el nombre elegido si el original estaba vacío. Si una tarea determinada no está bien formada o no se pudo agregar, se muestra un error appengine.MultiError.

func Delete

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

Delete borra una tarea de una cola con nombre.

func DeleteMulti

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

DeleteMulti borra múltiples tareas de una cola con nombre. Si una tarea determinada no se puede borrar, se muestra un error appengine.MultiError.

func Lease

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

Lease asigna tiempo a las tareas de una cola. leaseTime se expresa en segundos. La cantidad de tareas recuperadas será como máximo maxTasks.

func LeaseByTag

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

LeaseByTag asigna tiempo a las tareas de una cola, agrupadas por etiqueta. Si la etiqueta está vacía, las tareas mostradas se agrupan según la etiqueta de la tarea con el ETA más antiguo. leaseTime se expresa en segundos. La cantidad de tareas recuperadas será como máximo maxTasks.

func ModifyLease

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

ModifyLease modifica la asignación de tiempo de una tarea. Se usa para solicitar más tiempo de procesamiento o abandonar el proceso. leaseTime se expresa en segundos y no debe ser negativo.

func Purge

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

Purge quita todas las tareas de una cola.

func QueueStats

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

QueueStats recupera estadísticas sobre las colas.

type 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 representa estadísticas acerca de una sola lista de tareas en cola.

type 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
}

RetryOptions te permite controlar si se debe reintentar una tarea y los intervalos de retirada entre intentos.

type Task

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

    // Payload is the data for the task.
    // This will be delivered as the HTTP request body.
    // It is only used when Method is POST, PUT or PULL.
    // url.Values' Encode method may be used to generate this for POST requests.
    Payload []byte

    // Additional HTTP headers to pass at the task's execution time.
    // To schedule the task to be run with an alternate app version
    // or backend, set the "Host" header.
    Header http.Header

    // Method is the HTTP method for the task ("GET", "POST", etc.),
    // or "PULL" if this is task is destined for a pull-based queue.
    // If empty, this defaults to "POST".
    Method string

    // A name for the task.
    // If empty, a name will be chosen.
    Name string

    // Delay specifies the duration the task queue service must wait
    // before executing the task.
    // Either Delay or ETA may be set, but not both.
    Delay time.Duration

    // ETA specifies the earliest time a task may be executed (push queues)
    // or leased (pull queues).
    // Either Delay or ETA may be set, but not both.
    ETA time.Time

    // The number of times the task has been dispatched or leased.
    RetryCount int32

    // Tag for the task. Only used when Method is PULL.
    Tag string

    // Retry options for this task. May be nil.
    RetryOptions *RetryOptions
}

Cada Task representa una tarea que se debe ejecutar.

func NewPOSTTask

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

NewPOSTTask crea una tarea que se enviará a una ruta con los datos de formulario proporcionados.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Go