faas/gateway/queue/types.go
Alex Ellis (OpenFaaS Ltd) 2bfca6d848 Publish to multiple topics
Enables publishing to various topics according to annotations
on the functions. The function cache is moved up one level so
that it can be shared between the scale from zero code and the
queue proxy.

Unit tests added for new internal methods.

Tested e2e with arkade and the newest queue-worker and RC
gateway image with two queues and an annotation on one of the
functions of com.openfaas.queue. It worked as expected including
with multiple namespace support.

Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
2020-04-22 15:26:42 +01:00

46 lines
917 B
Go

// Copyright (c) Alex Ellis 2017. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
package queue
import (
"net/http"
"net/url"
)
// Request for asynchronous processing
type Request struct {
// 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 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
}