class Kcl::Workers::ShardInfo

Attributes

assigned_to[RW]
checkpoint[RW]
ending_sequence_number[R]
lease_timeout[RW]
parent_shard_id[R]
shard_id[R]
starting_sequence_number[R]

Public Class Methods

new(shard_id, parent_shard_id, sequence_number_range) click to toggle source

@param [String] shard_id @param [String] parent_shard_id @param [Hash] sequence_number_range

# File lib/kcl/workers/shard_info.rb, line 12
def initialize(shard_id, parent_shard_id, sequence_number_range)
  @shard_id        = shard_id
  @parent_shard_id = parent_shard_id || 0
  @starting_sequence_number = sequence_number_range[:starting_sequence_number]
  @ending_sequence_number   = sequence_number_range[:ending_sequence_number]
  @assigned_to     = nil
  @checkpoint      = nil
  @lease_timeout   = nil
end

Public Instance Methods

completed?() click to toggle source
# File lib/kcl/workers/shard_info.rb, line 30
def completed?
  @checkpoint == Kcl::Checkpoints::Sentinel::SHARD_END
end
lease_owner() click to toggle source
# File lib/kcl/workers/shard_info.rb, line 22
def lease_owner
  @assigned_to
end
lease_owner=(assigned_to) click to toggle source
# File lib/kcl/workers/shard_info.rb, line 26
def lease_owner=(assigned_to)
  @assigned_to = assigned_to
end
to_h() click to toggle source

For debug

# File lib/kcl/workers/shard_info.rb, line 35
def to_h
  {
    shard_id: shard_id,
    parent_shard_id: parent_shard_id,
    starting_sequence_number: starting_sequence_number,
    ending_sequence_number: ending_sequence_number,
    assigned_to: assigned_to,
    checkpoint: checkpoint,
    lease_timeout: lease_timeout
  }
end