class

LavinMQ::Shovel::HTTPDestination

Inherits LavinMQ::Shovel::Destination < Reference < Object

Constants

Log = LavinMQ::Log.for("shovel.http_destination")
MESSAGE_STATUSES = {::HTTP::Status::BAD_REQUEST, ::HTTP::Status::LENGTH_REQUIRED, ::HTTP::Status::PAYLOAD_TOO_LARGE, ::HTTP::Status::URI_TOO_LONG, ::HTTP::Status::UNSUPPORTED_MEDIA_TYPE, ::HTTP::Status::UNPROCESSABLE_ENTITY, ::HTTP::Status::REQUEST_HEADER_FIELDS_TOO_LARGE}

Statuses that describe the request rather than the endpoint. The body, Content-Type, uri_path and headers all come from the message, so these mean "this message is unacceptable" (Reject), not "the endpoint is unusable" (Abort).

TRANSIENT_STATUSES = {::HTTP::Status::REQUEST_TIMEOUT, ::HTTP::Status::TOO_MANY_REQUESTS}

Statuses that say "not right now" rather than "not this message".

Constructors

new(name : String, uri : URI, ack_mode : LavinMQ::Shovel::AckMode = DEFAULT_ACK_MODE, timeout : Time::Span = 30.seconds)
Source

Class methods

timeout_from(config : JSON::Any) : Time::Span

Parses the dest-timeout shovel parameter (seconds, int or float) into a connect/read timeout, falling back to 30s when absent or non-positive.

Source

Instance methods

classify(response : ::HTTP::Client::Response) : Outcome
Source
push(msg) : Nil
Source
start
Source
started?
Source
stop
Source
timeout
Source