Sha256: 64f7fdb0ad69cc2899d907b7649244aaa8f223d54af1b0b2df6f345a98d173d9
Contents?: true
Size: 641 Bytes
Versions: 1
Compression:
Stored size: 641 Bytes
Contents
# frozen_string_literal: true module Logux class Node include ::Singleton attr_accessor :last_time, :sequence attr_writer :node_id 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 def node_id @node_id ||= "server:#{Nanoid.generate(size: 8)}" end private def now_time Time.now.to_datetime.strftime('%Q') end def mutex @mutex ||= Mutex.new end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
logux-rack-0.1.0 | lib/logux/node.rb |