Class: Consumer::Subscription

Inherits:
Object
  • Object
show all
Includes:
Actor, Configure, Dependency, Initializer, 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.



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

def next_batch
  @next_batch
end

#positionObject



16
17
18
# File 'lib/consumer/subscription.rb', line 16

def position
  @position ||= 0
end

Class Method Details

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



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/consumer/subscription.rb', line 26

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

  instance = new(get)

  instance.position = position

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

  instance.configure
  instance
end

Instance Method Details

#batch_sizeObject



20
21
22
# File 'lib/consumer/subscription.rb', line 20

def batch_size
  get.batch_size
end

#reset_next_batchObject



86
87
88
89
90
91
92
93
94
# File 'lib/consumer/subscription.rb', line 86

def reset_next_batch
  batch = next_batch

  self.next_batch = nil

  self.position = batch.last.global_position + 1

  batch
end