Documentation
¶
Overview ¶
Package cloudtasks is the Cloud Tasks emulation.
A task is deferred HTTP work: it names a URL, a schedule time and a body, and the queue dispatches it when that time arrives, retrying on failure. The dispatch runs on the injected clock, so a test advances time to fire a task due in an hour rather than waiting one — which is the thing that cannot be done against real Cloud Tasks.
Index ¶
- Constants
- type REST
- type Service
- func (s *Service) CreateQueue(ctx context.Context, req *cloudtaskspb.CreateQueueRequest) (*cloudtaskspb.Queue, error)
- func (s *Service) CreateTask(ctx context.Context, req *cloudtaskspb.CreateTaskRequest) (*cloudtaskspb.Task, error)
- func (s *Service) DeleteQueue(ctx context.Context, req *cloudtaskspb.DeleteQueueRequest) (*emptypb.Empty, error)
- func (s *Service) DeleteTask(ctx context.Context, req *cloudtaskspb.DeleteTaskRequest) (*emptypb.Empty, error)
- func (s *Service) GetQueue(ctx context.Context, req *cloudtaskspb.GetQueueRequest) (*cloudtaskspb.Queue, error)
- func (s *Service) GetTask(ctx context.Context, req *cloudtaskspb.GetTaskRequest) (*cloudtaskspb.Task, error)
- func (s *Service) ListQueues(ctx context.Context, req *cloudtaskspb.ListQueuesRequest) (*cloudtaskspb.ListQueuesResponse, error)
- func (s *Service) ListTasks(ctx context.Context, req *cloudtaskspb.ListTasksRequest) (*cloudtaskspb.ListTasksResponse, error)
- func (s *Service) PauseQueue(ctx context.Context, req *cloudtaskspb.PauseQueueRequest) (*cloudtaskspb.Queue, error)
- func (s *Service) PurgeQueue(ctx context.Context, req *cloudtaskspb.PurgeQueueRequest) (*cloudtaskspb.Queue, error)
- func (s *Service) ResumeQueue(ctx context.Context, req *cloudtaskspb.ResumeQueueRequest) (*cloudtaskspb.Queue, error)
- func (s *Service) RunTask(ctx context.Context, req *cloudtaskspb.RunTaskRequest) (*cloudtaskspb.Task, error)
- func (s *Service) Started() uint64
- func (s *Service) Sync()
Constants ¶
const MaxBodyBytes = 4 << 20
MaxBodyBytes caps a JSON request body. A task payload is small; an unbounded read is a way to exhaust the process, and the port is shared.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type REST ¶
type REST struct {
// contains filtered or unexported fields
}
REST serves the Cloud Tasks JSON API so `gcloud tasks` works. The Go client speaks gRPC; gcloud speaks REST, over the same service.
type Service ¶
type Service struct {
cloudtaskspb.UnimplementedCloudTasksServer
// contains filtered or unexported fields
}
Service holds queues and their tasks, and dispatches due tasks.
func (*Service) CreateQueue ¶
func (s *Service) CreateQueue(ctx context.Context, req *cloudtaskspb.CreateQueueRequest) (*cloudtaskspb.Queue, error)
func (*Service) CreateTask ¶
func (s *Service) CreateTask(ctx context.Context, req *cloudtaskspb.CreateTaskRequest) (*cloudtaskspb.Task, error)
CreateTask stores a task and arms its dispatch. A task with no schedule time is due now.
func (*Service) DeleteQueue ¶
func (s *Service) DeleteQueue(ctx context.Context, req *cloudtaskspb.DeleteQueueRequest) (*emptypb.Empty, error)
func (*Service) DeleteTask ¶
func (s *Service) DeleteTask(ctx context.Context, req *cloudtaskspb.DeleteTaskRequest) (*emptypb.Empty, error)
func (*Service) GetQueue ¶
func (s *Service) GetQueue(ctx context.Context, req *cloudtaskspb.GetQueueRequest) (*cloudtaskspb.Queue, error)
func (*Service) GetTask ¶
func (s *Service) GetTask(ctx context.Context, req *cloudtaskspb.GetTaskRequest) (*cloudtaskspb.Task, error)
func (*Service) ListQueues ¶
func (s *Service) ListQueues(ctx context.Context, req *cloudtaskspb.ListQueuesRequest) (*cloudtaskspb.ListQueuesResponse, error)
func (*Service) ListTasks ¶
func (s *Service) ListTasks(ctx context.Context, req *cloudtaskspb.ListTasksRequest) (*cloudtaskspb.ListTasksResponse, error)
func (*Service) PauseQueue ¶
func (s *Service) PauseQueue(ctx context.Context, req *cloudtaskspb.PauseQueueRequest) (*cloudtaskspb.Queue, error)
func (*Service) PurgeQueue ¶
func (s *Service) PurgeQueue(ctx context.Context, req *cloudtaskspb.PurgeQueueRequest) (*cloudtaskspb.Queue, error)
func (*Service) ResumeQueue ¶
func (s *Service) ResumeQueue(ctx context.Context, req *cloudtaskspb.ResumeQueueRequest) (*cloudtaskspb.Queue, error)
func (*Service) RunTask ¶
func (s *Service) RunTask(ctx context.Context, req *cloudtaskspb.RunTaskRequest) (*cloudtaskspb.Task, error)
RunTask dispatches a task now, ahead of its schedule. It is how an operator forces a task without waiting for its time.