Module: SidekiqUniqueJobs::Scripts

Extended by:
SingleForwardable
Defined in:
lib/sidekiq_unique_jobs/scripts.rb

Class Method Summary collapse

Class Method Details

.call(file_name, redis_pool, options = {}) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/sidekiq_unique_jobs/scripts.rb', line 25

def call(file_name, redis_pool, options = {})
  connection(redis_pool) do |redis|
    script_shas[file_name] ||= redis.script(:load, script_source(file_name))
    redis.evalsha(script_shas[file_name], options)
  end
rescue Redis::CommandError => ex
  raise ScriptError,
        "#{file_name}.lua\n\n" +
        ex.message + "\n\n" +
        script_source(file_name) +
        ex.backtrace.join("\n")
end

.loggerObject



21
22
23
# File 'lib/sidekiq_unique_jobs/scripts.rb', line 21

def logger
  Sidekiq.logger
end

.script_path(file_name) ⇒ Object



42
43
44
# File 'lib/sidekiq_unique_jobs/scripts.rb', line 42

def script_path(file_name)
  LUA_PATHNAME.join("#{file_name}.lua")
end

.script_shasObject



17
18
19
# File 'lib/sidekiq_unique_jobs/scripts.rb', line 17

def script_shas
  @script_shas ||= {}
end

.script_source(file_name) ⇒ Object



38
39
40
# File 'lib/sidekiq_unique_jobs/scripts.rb', line 38

def script_source(file_name)
  script_path(file_name).read
end