mirror of
https://github.com/openfaas/faas.git
synced 2025-06-09 00:36:46 +00:00
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>
46 lines
917 B
Go
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
|
|
}
|