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