From a7c6c39200782ea2e1a1b005d56e3edd51e761a7 Mon Sep 17 00:00:00 2001 From: "Alex Ellis (OpenFaaS Ltd)" Date: Wed, 22 Apr 2020 12:38:58 +0100 Subject: [PATCH] Add QueueName to async requests The queue's name will be consumed by the queue worker to publish to other topics / slow queues. Signed-off-by: Alex Ellis (OpenFaaS Ltd) --- gateway/queue/types.go | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/gateway/queue/types.go b/gateway/queue/types.go index 2e625be6c..4d8e4e431 100644 --- a/gateway/queue/types.go +++ b/gateway/queue/types.go @@ -3,21 +3,47 @@ package queue -import "net/url" -import "net/http" +import ( + "net/http" + "net/url" +) // Request for asynchronous processing type Request struct { - Header http.Header - Host string - Body []byte - Method string - Path string + // Header from HTTP request + Header http.Header + + // Host from HTTP request + Host string + + // Body from HTTP request to use for invocation + Body []byte + + // Method from HTTP request + Method string + + // Path from HTTP request + Path string + + // QueryString from HTTP request QueryString string - Function string + + // Function name to invoke + Function string + + // QueueName to publish the request to, leave blank + // for default. + QueueName string + + // Used by queue worker to submit a result CallbackURL *url.URL `json:"CallbackUrl"` } +// RequestQueuer can public a request to be executed asynchronously +type RequestQueuer interface { + Queue(req *Request) error +} + // CanQueueRequests can take on asynchronous requests type CanQueueRequests interface { Queue(req *Request) error