Class: Hawkei::Processor::Batch
- Inherits:
-
Object
- Object
- Hawkei::Processor::Batch
- Defined in:
- lib/hawkei/processor/batch.rb
Constant Summary collapse
- MAX_BYTES =
200Kb
204_800
- MAX_MESSAGES =
100
- MAX_MESSAGE_BYTES =
32Kb
32_768
- DEFAULT_RETRY_TIME =
60
- MAX_RETRY =
10
- RETRY_MAP =
{ 1 => 2, 2 => 5, 3 => 10, 4 => 20, 5 => 30, 6 => 30, 7 => 30, 8 => 30, 9 => 30, 10 => 30, }.freeze
Instance Attribute Summary collapse
-
#messages ⇒ Object
readonly
Returns the value of attribute messages.
Instance Method Summary collapse
- #<<(message) ⇒ Object
- #can_retry? ⇒ Boolean
- #empty? ⇒ Boolean
- #full? ⇒ Boolean
-
#initialize ⇒ Batch
constructor
A new instance of Batch.
- #next_retry ⇒ Object
- #update_retry ⇒ Object
Constructor Details
#initialize ⇒ Batch
Returns a new instance of Batch.
27 28 29 30 31 |
# File 'lib/hawkei/processor/batch.rb', line 27 def initialize @retry_count = 0 @total_bytes = 0 @messages = [] end |
Instance Attribute Details
#messages ⇒ Object (readonly)
Returns the value of attribute messages.
5 6 7 |
# File 'lib/hawkei/processor/batch.rb', line 5 def @messages end |
Instance Method Details
#<<(message) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/hawkei/processor/batch.rb', line 33 def <<() = .to_json.bytesize if () Hawkei.configurations.logger.error('Message is too big to be send') return false end @total_bytes += @messages << true end |
#can_retry? ⇒ Boolean
64 65 66 |
# File 'lib/hawkei/processor/batch.rb', line 64 def can_retry? @retry_count < MAX_RETRY end |
#empty? ⇒ Boolean
48 49 50 |
# File 'lib/hawkei/processor/batch.rb', line 48 def empty? @messages.size.zero? end |
#full? ⇒ Boolean
52 53 54 |
# File 'lib/hawkei/processor/batch.rb', line 52 def full? || max_size_reached? end |
#next_retry ⇒ Object
56 57 58 |
# File 'lib/hawkei/processor/batch.rb', line 56 def next_retry RETRY_MAP[@retry_count] || DEFAULT_RETRY_TIME end |
#update_retry ⇒ Object
60 61 62 |
# File 'lib/hawkei/processor/batch.rb', line 60 def update_retry @retry_count += 1 end |