Class: Brow::Client
- Inherits:
-
Object
- Object
- Brow::Client
- Defined in:
- lib/brow/client.rb
Instance Attribute Summary collapse
-
#worker ⇒ Object
readonly
Private.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Client
constructor
Public: Create a new instance of a client.
-
#push(data) ⇒ Object
Public: Enqueues an event to eventually be transported to backend service.
Constructor Details
#initialize(options = {}) ⇒ Client
Public: Create a new instance of a client.
options - The Hash of options.
:url - The URL where all batches of data should be transported.
:max_queue_size - The maximum number of calls to be remain queued.
:logger - The Logger to use to log useful information about what is
going on.
:queue - The Queue to use to store data until it can be batched up and
transported to the API.
:worker - The Worker that will pop items off the queue, batch them up
and transport them to the API.
:transport - The Transport to use to transport batches to the API.
:headers - The Hash of headers to include when transporting batches to
the API. These could be used for auth or whatever.
:retries - The Integer number of times the transport should retry a call
before giving up.
:read_timeout - The number of seconds to wait when reading data before
giving up.
:open_timeout - The number of seconds to wait when opening a connection
to the API.
:backoff_policy - The BackoffPolicy to use to determine when the next
retry should occur when the transport fails to send a
batch of data to the API.
:min_timeout_ms - The minimum number of milliseconds to wait before
retrying a failed call to the API.
:max_timeout_ms - The maximum number of milliseconds to wait before
retrying a failed call to the API.
:multiplier - The value to multily the current interval with for each
retry attempt.
:randomization_factor - The value to use to create a range of jitter
around the retry interval.
:batch - The MessageBatch used to batch up several events to be
transported in one call to the API.
:shutdown_timeout - The number of seconds to wait for the worker thread
to join when shutting down.
:shutdown_automatically - Should the worker shutdown automatically or
manually. If true, shutdown is automatic. If
false, you'll need to handle this on your own.
:max_size - The maximum number of items a batch can contain before it
should be transported to the API. Only used if not :batch
is provided.
:on_error - The Proc that handles error calls from the API.
52 53 54 55 |
# File 'lib/brow/client.rb', line 52 def initialize( = {}) = Brow::Utils.symbolize_keys() @worker = .fetch(:worker) { Worker.new() } end |
Instance Attribute Details
#worker ⇒ Object (readonly)
Private
58 59 60 |
# File 'lib/brow/client.rb', line 58 def worker @worker end |
Instance Method Details
#push(data) ⇒ Object
Public: Enqueues an event to eventually be transported to backend service.
data - The Hash of data.
Returns Boolean of whether the data was added to the queue.
65 66 67 |
# File 'lib/brow/client.rb', line 65 def push(data) worker.push(data) end |