Documentation
¶
Overview ¶
Package httphandler provides HTTP handlers for the queue package.
This package implements RESTful HTTP handlers for managing queues, tasks, and tickers. It follows the same pattern as pkg/manager/httphandler, providing a consistent API interface for queue operations.
Namespace Endpoints ¶
GET /namespace - List all namespaces
Queue Endpoints ¶
GET /queue - List all queues
POST /queue - Create/register a new queue
GET /queue/{name} - Get a specific queue
PATCH /queue/{name} - Update a queue
DELETE /queue/{name} - Delete a queue
Task Endpoints ¶
GET /task - List tasks (optional ?queue, ?status, ?offset, ?limit)
POST /task - Create a new task (requires queue in body)
PUT /task - Retain next available task from any queue (requires ?worker)
PUT /task/{queue} - Retain next available task from specific queue (requires ?worker)
PATCH /task/{id} - Release a task with result (mark as complete or failed)
Ticker Endpoints ¶
GET /ticker - List all tickers
POST /ticker - Create/register a new ticker
GET /ticker/{name} - Get a specific ticker
GET /ticker/next - SSE stream of matured tickers
PATCH /ticker/{name} - Update a ticker
DELETE /ticker/{name} - Delete a ticker
Metrics Endpoint ¶
GET /metrics - Prometheus metrics
Usage ¶
To register all handlers:
import (
"net/http"
"github.com/mutablelogic/go-pg/pkg/queue"
"github.com/mutablelogic/go-pg/pkg/queue/httphandler"
)
func main() {
manager, _ := queue.New(ctx, conn, queue.WithNamespace("myapp"))
router := http.NewServeMux()
httphandler.RegisterBackendHandlers(router, "/api", manager)
http.ListenAndServe(":8080", router)
}
Or register individual handler groups:
httphandler.RegisterNamespaceHandlers(router, "/api", manager) httphandler.RegisterQueueHandlers(router, "/api", manager) httphandler.RegisterTaskHandlers(router, "/api", manager) httphandler.RegisterTickerHandlers(router, "/api", manager) httphandler.RegisterMetricsHandler(router, "/api", manager)
Index ¶
- func RegisterBackendHandlers(router *http.ServeMux, prefix string, manager *queue.Manager, ...)
- func RegisterFrontendHandler(router *http.ServeMux, prefix string, enabled bool, ...)
- func RegisterMetricsHandler(router *http.ServeMux, prefix string, manager *queue.Manager, ...)
- func RegisterNamespaceHandlers(router *http.ServeMux, prefix string, manager *queue.Manager, ...)
- func RegisterQueueHandlers(router *http.ServeMux, prefix string, manager *queue.Manager, ...)
- func RegisterTaskHandlers(router *http.ServeMux, prefix string, manager *queue.Manager, ...)
- func RegisterTickerHandlers(router *http.ServeMux, prefix string, manager *queue.Manager, ...)
- type HTTPMiddlewareFuncs
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterBackendHandlers ¶
func RegisterBackendHandlers(router *http.ServeMux, prefix string, manager *queue.Manager, middleware HTTPMiddlewareFuncs)
RegisterBackendHandlers registers all queue HTTP handlers on the provided router with the given path prefix. The manager must be non-nil.
func RegisterFrontendHandler ¶
func RegisterFrontendHandler(router *http.ServeMux, prefix string, enabled bool, middleware HTTPMiddlewareFuncs)
RegisterFrontendHandler registers a fallback handler when frontend is not included
func RegisterMetricsHandler ¶
func RegisterMetricsHandler(router *http.ServeMux, prefix string, manager *queue.Manager, middleware HTTPMiddlewareFuncs)
RegisterMetricsHandler registers a HTTP handler for prometheus metrics on the provided router with the given path prefix. The manager must be non-nil.
func RegisterNamespaceHandlers ¶
func RegisterNamespaceHandlers(router *http.ServeMux, prefix string, manager *queue.Manager, middleware HTTPMiddlewareFuncs)
RegisterNamespaceHandlers registers namespace-related HTTP handlers
func RegisterQueueHandlers ¶
func RegisterQueueHandlers(router *http.ServeMux, prefix string, manager *queue.Manager, middleware HTTPMiddlewareFuncs)
RegisterQueueHandlers registers HTTP handlers for queue CRUD operations on the provided router with the given path prefix. The manager must be non-nil.
func RegisterTaskHandlers ¶
func RegisterTaskHandlers(router *http.ServeMux, prefix string, manager *queue.Manager, middleware HTTPMiddlewareFuncs)
RegisterTaskHandlers registers HTTP handlers for task operations
func RegisterTickerHandlers ¶
func RegisterTickerHandlers(router *http.ServeMux, prefix string, manager *queue.Manager, middleware HTTPMiddlewareFuncs)
RegisterTickerHandlers registers HTTP handlers for ticker CRUD operations on the provided router with the given path prefix. The manager must be non-nil.
Types ¶
type HTTPMiddlewareFuncs ¶
type HTTPMiddlewareFuncs []func(http.HandlerFunc) http.HandlerFunc
func (HTTPMiddlewareFuncs) Wrap ¶
func (w HTTPMiddlewareFuncs) Wrap(handler http.HandlerFunc) http.HandlerFunc