Class: Consumer::Subscription

Inherits:
Object
  • Object
show all
Includes:
Actor, Log::Dependency
Defined in:
lib/consumer/subscription.rb,
lib/consumer/subscription/defaults.rb,
lib/consumer/subscription/get_batch.rb

Defined Under Namespace

Modules: Defaults Classes: GetBatch

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#next_batchObject

Returns the value of attribute next_batch.



10
11
12
# File 'lib/consumer/subscription.rb', line 10

def next_batch
  @next_batch
end

#positionObject



13
14
15
# File 'lib/consumer/subscription.rb', line 13

def position
  @position ||= 0
end

Class Method Details

.build(stream_name, get, position: nil, poll_interval_milliseconds: nil) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/consumer/subscription.rb', line 19

def self.build(stream_name, get, position: nil, poll_interval_milliseconds: nil)
  poll_interval_milliseconds ||= Defaults.poll_interval_milliseconds
  poll_timeout_milliseconds = Defaults.poll_timeout_milliseconds

  instance = new(stream_name, get)

  instance.position = position

  Poll.configure(
    instance,
    interval_milliseconds: poll_interval_milliseconds,
    timeout_milliseconds: poll_timeout_milliseconds
  )

  instance.configure
  instance
end

Instance Method Details

#reset_next_batchObject



79
80
81
82
83
84
85
86
87
# File 'lib/consumer/subscription.rb', line 79

def reset_next_batch
  batch = next_batch

  self.next_batch = nil

  self.position = batch.last.global_position + 1

  batch
end