class Logux::Node

Attributes

last_time[RW]
node_id[W]
sequence[RW]

Public Instance Methods

generate_action_id() click to toggle source
# File lib/logux/node.rb, line 10
def generate_action_id
  mutex.synchronize do
    if last_time && now_time <= last_time
      @sequence += 1
    else
      @sequence = 0
      @last_time = now_time
    end

    "#{last_time} #{node_id} #{sequence}"
  end
end
node_id() click to toggle source
# File lib/logux/node.rb, line 23
def node_id
  @node_id ||= "server:#{Nanoid.generate(size: 8)}"
end

Private Instance Methods

mutex() click to toggle source
# File lib/logux/node.rb, line 33
def mutex
  @mutex ||= Mutex.new
end
now_time() click to toggle source
# File lib/logux/node.rb, line 29
def now_time
  Time.now.to_datetime.strftime('%Q')
end