google.golang.org/appengine/taskqueue 패키지(v1.6.8)

taskqueue 패키지는 App Engine의 taskqueue 서비스용 클라이언트를 제공합니다. 애플리케이션은 이 서비스를 통해 사용자의 요청 범위 밖에서 작업을 수행할 수 있습니다.

Task는 수동으로 생성할 수도 있지만, 가장 일반적인 taskqueue 작업은 POST 태스크 하나를 추가하는 것이므로 NewPOSTTask를 사용하여 간편하게 생성할 수 있습니다.

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

변수

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

함수

func Delete

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

Delete는 지정된 큐에서 태스크를 삭제합니다.

func DeleteMulti

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

DeleteMulti는 이름이 지정된 큐에서 태스크를 여러 개 삭제합니다. 지정된 태스크를 삭제할 수 없으면 appengine.MultiError가 반환됩니다. 각 태스크는 독립적으로 삭제됩니다. 다른 태스크가 성공적으로 삭제되더라도 특정 태스크가 삭제되지 않을 수 있습니다.

func ModifyLease

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

ModifyLease는 태스크의 임대를 수정합니다. 처리 시간을 더 요청하거나 처리를 중단하는 데 사용됩니다. leaseTime은 초 단위이며 음수가 아니어야 합니다.

func Purge

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

Purge는 큐에서 모든 태스크를 삭제합니다.

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는 단일 태스크 큐에 대한 통계를 나타냅니다.

func QueueStats

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

QueueStats는 큐에 대한 통계를 가져옵니다.

RequestHeaders

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

	TaskPreviousResponse int
	TaskRetryReason      string
	FailFast             bool
}

RequestHeaders는 태스크 HTTP 요청 핸들러를 푸시할 수 있는 특별한 HTTP 요청 헤더입니다. 이러한 헤더는 App Engine에서 내부적으로 설정됩니다. 필드에 대한 설명은 https://cloud.google.com/appengine/docs/standard/go/taskqueue/push/creating-handlers#reading_request_headers를 참조하세요.

func ParseRequestHeaders

func ParseRequestHeaders(h http.Header) *RequestHeaders

ParseRequestHeaders는 태스크 요청 핸들러를 푸시할 수 있는 특별한 HTTP 요청 헤더를 파싱합니다. 이 함수는 잘못된 형식의 값을 자동으로 무시합니다.

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로 태스크 재시도 여부 및 시도 간의 백오프 간격을 제어할 수 있습니다.

Task

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

Task는 실행할 태스크를 나타냅니다.

func Add

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

Add는 이름이 지정된 큐에 태스크를 추가합니다. 큐 이름을 비워 두면 기본 큐가 사용됩니다. Add는 기본값이 적용된 해당 Task를 반환하며, 원본이 비어 있으면 태스크의 Name 필드를 선택한 이름으로 설정합니다.

func AddMulti

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

AddMulti는 이름이 지정된 큐에 태스크를 여러 개 추가합니다. 큐 이름을 비워 두면 기본 큐가 사용됩니다. AddMulti는 기본값이 적용된 해당 Task의 슬라이스를 반환하며, 원본이 비어 있으면 각 태스크의 Name 필드를 선택한 이름으로 설정합니다. 지정된 태스크가 잘못된 형식이거나 추가에 실패하면 appengine.MultiError가 반환됩니다.

func Lease

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

Lease는 큐에서 태스크를 임대합니다. leaseTime은 초 단위입니다. 가져오는 태스크의 최대 개수는 maxTasks입니다.

func LeaseByTag

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

LeaseByTag는 큐에서 태그로 그룹화된 태스크를 임대합니다. 태그가 비어 있으면 ETA가 가장 빠른 태스크의 태그로 그룹화된 태스크가 반환됩니다. leaseTime은 초 단위입니다. 가져오는 태스크의 최대 개수는 maxTasks입니다.

func NewPOSTTask

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

NewPOSTTask는 지정된 양식 데이터로 특정 경로에 POST를 전송하는 태스크를 만듭니다.