Documentation ¶
Index ¶
- Variables
- func NewAPIRequestHandler(tokenHeaderName string, tokenCreator tokens.Creator, client *http.Client) queue.TaskHandler
- func NewDispatchHandler(handlers map[queue.TaskType]queue.TaskHandler) queue.TaskHandler
- func NewSQLTaskHandler(name string, db *sql.DB) queue.TaskHandler
- type APIRequestProgress
- type APIRequestStage
- type APIRequestTaskSpec
- type SQLExecTaskSpec
- type SQLTaskProgress
Constants ¶
This section is empty.
Variables ¶
var ( // APIRequestTask marks a task as an API request task APIRequestTask queue.TaskType = "api-request" )
var ( // ErrNoHandlerFound occurs when dispatcher can'f find a registered handler for a task type ErrNoHandlerFound = errors.New("no handler found") )
var (
ErrSerializingHearbeat = errors.New("failed to serialize progress payload while sending heartbeat")
)
Functions ¶
func NewAPIRequestHandler ¶
func NewAPIRequestHandler(tokenHeaderName string, tokenCreator tokens.Creator, client *http.Client) queue.TaskHandler
NewAPIRequestHandler creates a task handler that makes an HTTP request to a target API. The response from the request must be valid JSON or a stream of new line-separated JSON objects, otherwise the task will fail.
func NewDispatchHandler ¶
func NewDispatchHandler(handlers map[queue.TaskType]queue.TaskHandler) queue.TaskHandler
NewDispatchHandler creates a task handler that will dispatch tasks to other handlers
func NewSQLTaskHandler ¶
func NewSQLTaskHandler(name string, db *sql.DB) queue.TaskHandler
NewSQLTaskHandler creates a sqlTaskHandler handler instance with the given tracing name
Types ¶
type APIRequestProgress ¶
type APIRequestProgress struct { // Stage is the current stage of the API request task Stage APIRequestStage `json:"stage,omitempty"` // Duration of the HTTP request Duration *time.Duration `json:"duration,omitempty"` // ReturnedStatus is a status returned from the target endpoint ReturnedStatus *int `json:"returnedStatus,omitempty"` // ReturnedBody is a body returned from the target endpoint ReturnedBody *string `json:"returnedBody,omitempty"` // ErrorMessage contains an error message string if it occurs during the update process ErrorMessage *string `json:"errorMessage,omitempty"` }
APIRequestProgress describes the progress of the API request task stored during the heartbeat handling
type APIRequestStage ¶
type APIRequestStage string
var ( // RequestPreparing means the task is preparing the request parameters and the body RequestPreparing APIRequestStage = "preparing" // RequestPending means the request was sent, awaiting the response RequestPending APIRequestStage = "pending" // RequestResponse means the response was received RequestResponse APIRequestStage = "response" )
type APIRequestTaskSpec ¶
type APIRequestTaskSpec struct { // Method to use for the API request Method string `json:"method"` // URL is the target URL for the request. // Must be an absolute URL that contains the scheme and the host components. URL string `json:"url"` // RequestBody to send RequestBody string `json:"requestBody"` // RequestHeaders to send RequestHeaders map[string]string `json:"requestHeaders"` // Authorized if `true` the task will send a header with the // signed JWT token as a part of the request Authorized bool `json:"authorized"` // ExpectedStatus is an HTTP status expected as a response. // If it does not match the actual status the task fails ExpectedStatus int `json:"expectedStatus"` }
APIRequestTaskSpec describes the specification of the API request task
type SQLExecTaskSpec ¶
type SQLExecTaskSpec struct { // SQL is the actual sql that will be run SQL string `json:"sql"` }
SQLExecTaskSpec defines a task that simply executes a single SQL statement. This can be used for simple CRON cleanup tasks, for example.
type SQLTaskProgress ¶
type SQLTaskProgress struct { // Duration of the HTTP request in milliseconds Duration *int64 `json:"duration,omitempty"` // RowsAffected RowsAffected *int64 `json:"rowsAffected,omitempty"` // ErrorMessage contains an error message string if it occurs during the update process ErrorMessage *string `json:"errorMessage,omitempty"` }
SQLTaskProgress contains the generic progress information for a sql task