kncloudevents

package
v0.36.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 26, 2023 License: Apache-2.0 Imports: 18 Imported by: 109

Documentation

Index

Constants

View Source
const (
	DefaultShutdownTimeout = time.Minute * 1
)
View Source
const RetryAfterHeader = "Retry-After"

Variables

This section is empty.

Functions

func ConfigureConnectionArgs added in v0.17.9

func ConfigureConnectionArgs(ca *ConnectionArgs)

ConfigureConnectionArgs configures the new connection args. The existing client won't be affected, but a new one will be created. Use sparingly, because it might lead to creating a lot of clients, none of them sharing their connection pool!

func CreateHandler added in v0.14.0

func CreateHandler(handler http.Handler) http.Handler

func RetryIfGreaterThan300 added in v0.21.0

func RetryIfGreaterThan300(_ context.Context, response *http.Response, err error) (bool, error)

RetryIfGreaterThan300 is a simple default implementation

func SelectiveRetry added in v0.21.0

func SelectiveRetry(_ context.Context, response *http.Response, err error) (bool, error)

SelectiveRetry is an alternative function to determine whether to retry based on response

Note - Returning true indicates a retry should occur. Returning an error will result in that

error being returned instead of any errors from the Request.

A retry is triggered for: * nil responses * emitted errors * status codes that are 5XX, 404, 408, 409, 429 as well if the statuscode is -1.

func WithShutdownTimeout added in v0.14.0

func WithShutdownTimeout(ctx context.Context, timeout time.Duration) context.Context

func WriteHTTPRequestWithAdditionalHeaders added in v0.19.0

func WriteHTTPRequestWithAdditionalHeaders(ctx context.Context, message binding.Message, req *nethttp.Request,
	additionalHeaders nethttp.Header, transformers ...binding.Transformer) error

Types

type Backoff added in v0.17.0

type Backoff func(attemptNum int, resp *http.Response) time.Duration

Backoff specifies a policy for how long to wait between retries. It is called after a failing request to determine the amount of time that should pass before trying again.

type CheckRetry added in v0.17.0

type CheckRetry func(ctx context.Context, resp *http.Response, err error) (bool, error)

CheckRetry specifies a policy for handling retries. It is called following each request with the response and error values returned by the http.Client. If CheckRetry returns false, the Client stops retrying and returns the response to the caller. If CheckRetry returns an error, that error value is returned in lieu of the error from the request. The Client will close any response body when retrying, but if the retry is aborted it is up to the CheckRetry callback to properly close any response body before returning.

type ConnectionArgs added in v0.10.0

type ConnectionArgs struct {
	// MaxIdleConns refers to the max idle connections, as in net/http/transport.
	MaxIdleConns int
	// MaxIdleConnsPerHost refers to the max idle connections per host, as in net/http/transport.
	MaxIdleConnsPerHost int
}

ConnectionArgs allow to configure connection parameters to the underlying HTTP Client transport.

type HTTPMessageReceiver added in v0.19.0

type HTTPMessageReceiver struct {

	// Used to signal when receiver is listening
	Ready chan interface{}
	// contains filtered or unexported fields
}

func NewHTTPMessageReceiver added in v0.19.0

func NewHTTPMessageReceiver(port int, o ...HTTPMessageReceiverOption) *HTTPMessageReceiver

func (*HTTPMessageReceiver) StartListen added in v0.19.0

func (recv *HTTPMessageReceiver) StartListen(ctx context.Context, handler http.Handler) error

Blocking

type HTTPMessageReceiverOption added in v0.20.0

type HTTPMessageReceiverOption func(*HTTPMessageReceiver)

HTTPMessageReceiverOption enables further configuration of a HTTPMessageReceiver.

func WithChecker added in v0.21.0

func WithChecker(checker http.HandlerFunc) HTTPMessageReceiverOption

WithChecker takes a handler func which will run as an additional health check in Drainer. kncloudevents HTTPMessageReceiver uses Drainer to perform health check. By default, Drainer directly writes StatusOK to kubelet probe if the Pod is not draining. Users can configure customized liveness and readiness check logic by defining checker here.

func WithDrainQuietPeriod added in v0.22.0

func WithDrainQuietPeriod(duration time.Duration) HTTPMessageReceiverOption

WithDrainQuietPeriod configures the QuietPeriod for the Drainer.

func WithReadTimeout added in v0.34.0

func WithReadTimeout(duration time.Duration) HTTPMessageReceiverOption

WithReadTimeout sets the HTTP server's ReadTimeout. It covers the duration from reading the entire request (Headers + Body)

func WithWriteTimeout added in v0.34.0

func WithWriteTimeout(duration time.Duration) HTTPMessageReceiverOption

WithWriteTimeout sets the HTTP server's WriteTimeout. It covers the time between end of reading Request Header to end of writing response.

type HTTPMessageSender added in v0.19.0

type HTTPMessageSender struct {
	Client *nethttp.Client
	Target string
}

HTTPMessageSender is a wrapper for an http client that can send cloudevents.Request with retries

func NewHTTPMessageSender deprecated added in v0.19.0

func NewHTTPMessageSender(ca *ConnectionArgs, target string) (*HTTPMessageSender, error)

Deprecated: Don't use this anymore, now it has the same effect of NewHTTPMessageSenderWithTarget If you need to modify the connection args, use ConfigureConnectionArgs sparingly.

func NewHTTPMessageSenderWithTarget added in v0.19.0

func NewHTTPMessageSenderWithTarget(target string) (*HTTPMessageSender, error)

func (*HTTPMessageSender) NewCloudEventRequest added in v0.19.0

func (s *HTTPMessageSender) NewCloudEventRequest(ctx context.Context) (*nethttp.Request, error)

func (*HTTPMessageSender) NewCloudEventRequestWithTarget added in v0.19.0

func (s *HTTPMessageSender) NewCloudEventRequestWithTarget(ctx context.Context, target string) (*nethttp.Request, error)

func (*HTTPMessageSender) Send added in v0.19.0

func (*HTTPMessageSender) SendWithRetries added in v0.19.0

func (s *HTTPMessageSender) SendWithRetries(req *nethttp.Request, config *RetryConfig) (*nethttp.Response, error)

type RetryConfig added in v0.17.0

type RetryConfig struct {
	// Maximum number of retries
	RetryMax int
	// These next two variables are just copied from the original DeliverySpec so
	// we can detect if anything has changed. We can not do that with the CheckRetry
	// Backoff (at least not easily).
	BackoffDelay  *string
	BackoffPolicy *v1.BackoffPolicyType

	CheckRetry CheckRetry
	Backoff    Backoff

	// RequestTimeout represents the timeout of the single request
	RequestTimeout time.Duration

	// RetryAfterMaxDuration represents an optional override for the maximum
	// value allowed for "Retry-After" headers in 429 / 503 responses.  A nil
	// value indicates no maximum override.  A value of "0" indicates "Retry-After"
	// headers are to be ignored.
	RetryAfterMaxDuration *time.Duration
}

func NoRetries added in v0.17.0

func NoRetries() RetryConfig

func RetryConfigFromDeliverySpec added in v0.17.0

func RetryConfigFromDeliverySpec(spec v1.DeliverySpec) (RetryConfig, error)

type TypeExtractorTransformer added in v0.19.0

type TypeExtractorTransformer string

func (*TypeExtractorTransformer) Transform added in v0.19.0

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL