Sha256: a1db8dac7740d0a072b6383f7f6ac719009aee7223becb7c797ca0e495be0abb

Contents?: true

Size: 684 Bytes

Versions: 6

Compression:

Stored size: 684 Bytes

Contents

module ActiveRecord::Turntable
  class Sequencer
    class Katsubushi < Sequencer
      def initialize(options = {})
        @options = options["options"]

        opts = @options.dup
        servers = opts.delete("servers").map do |server|
          "#{server["host"]}:#{server["port"]}"
        end

        require "dalli"
        require "securerandom"
        dalli_opts = opts.with_indifferent_access
        @client = Dalli::Client.new(servers, dalli_opts)
      end

      def next_sequence_value(*)
        @client.get(SecureRandom.hex(4)).to_i
      end

      def current_sequence_value(sequence_name)
        next_sequence_value(sequence_name)
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
activerecord-turntable-4.4.1 lib/active_record/turntable/sequencer/katsubushi.rb
activerecord-turntable-4.4.0 lib/active_record/turntable/sequencer/katsubushi.rb
activerecord-turntable-4.3.0 lib/active_record/turntable/sequencer/katsubushi.rb
activerecord-turntable-4.2.0 lib/active_record/turntable/sequencer/katsubushi.rb
activerecord-turntable-4.1.0 lib/active_record/turntable/sequencer/katsubushi.rb
activerecord-turntable-4.0.0 lib/active_record/turntable/sequencer/katsubushi.rb