class EventQ::NonceManager

Public Class Methods

complete(nonce) click to toggle source
# File lib/eventq_base/nonce_manager.rb, line 37
def self.complete(nonce)
  if @server_url != nil
    Redis.new(url: @server_url).expire(nonce, @lifespan)
  end
  return true
end
configure(server:,timeout:10000,lifespan:3600000) click to toggle source
# File lib/eventq_base/nonce_manager.rb, line 4
def self.configure(server:,timeout:10000,lifespan:3600000)
  @server_url = server
  @timeout = timeout
  @lifespan = lifespan
end
failed(nonce) click to toggle source
# File lib/eventq_base/nonce_manager.rb, line 44
def self.failed(nonce)
  if @server_url != nil
    Redis.new(url: @server_url).del(nonce)
  end
  return true
end
is_allowed?(nonce) click to toggle source
# File lib/eventq_base/nonce_manager.rb, line 22
def self.is_allowed?(nonce)
  if @server_url == nil
    return true
  end

  require 'redlock'
  lock = Redlock::Client.new([ @server_url ]).lock(nonce, @timeout)
  if lock == false
    EventQ.log(:info, "[#{self.class}] - Message has already been processed: #{nonce}")
    return false
  end

  return true
end
lifespan() click to toggle source
# File lib/eventq_base/nonce_manager.rb, line 18
def self.lifespan
  @lifespan
end
reset() click to toggle source
# File lib/eventq_base/nonce_manager.rb, line 51
def self.reset
  @server_url = nil
  @timeout = nil
  @lifespan = nil
end
server_url() click to toggle source
# File lib/eventq_base/nonce_manager.rb, line 10
def self.server_url
  @server_url
end
timeout() click to toggle source
# File lib/eventq_base/nonce_manager.rb, line 14
def self.timeout
  @timeout
end