Module: SidekiqUniqueJobs::Script::Caller
- Included in:
- Locksmith, OnConflict::Strategy, Orphans::Reaper, Redis::Entity
- Defined in:
- lib/sidekiq_unique_jobs/script/caller.rb
Overview
Module Caller provides the convenience method #call_script
Class Method Summary collapse
-
.call_script(file_name, *args) ⇒ true, ...
Convenience method to reduce typing, calls redis lua scripts.
- .debug_lua ⇒ Object
-
.do_call(file_name, conn, keys, argv) ⇒ Object
Only used to reduce a little bit of duplication.
-
.extract_args(*args) ⇒ Array<Redis, Array, Array>
Utility method to allow both symbol keys and arguments.
- .max_history ⇒ Object
- .now_f ⇒ Object
- .redis_version ⇒ Object
Class Method Details
.call_script(file_name, keys, argv, conn) ⇒ true, ... .call_script(file_name, conn, keys: , argv: ) ⇒ true, ...
Convenience method to reduce typing,
calls redis lua scripts.
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/sidekiq_unique_jobs/script/caller.rb', line 41 def call_script(file_name, *args) conn, keys, argv = extract_args(*args) return do_call(file_name, conn, keys, argv) if conn pool = defined?(redis_pool) ? redis_pool : nil redis(pool) do |new_conn| do_call(file_name, new_conn, keys, argv) end end |
.debug_lua ⇒ Object
106 107 108 |
# File 'lib/sidekiq_unique_jobs/script/caller.rb', line 106 def debug_lua SidekiqUniqueJobs.config.debug_lua end |
.do_call(file_name, conn, keys, argv) ⇒ Object
Only used to reduce a little bit of duplication
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/sidekiq_unique_jobs/script/caller.rb', line 54 def do_call(file_name, conn, keys, argv) argv = argv.dup.concat([ now_f, debug_lua, max_history, file_name, redis_version, ]) Script.execute(file_name, conn, keys: keys, argv: argv) end |
.call_script(file_name, keys, argv, conn) ⇒ Array<Redis, Array, Array> .call_script(file_name, conn, keys: , argv: ) ⇒ Array<Redis, Array, Array>
Utility method to allow both symbol keys and arguments
84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/sidekiq_unique_jobs/script/caller.rb', line 84 def extract_args(*args) = args. if .length.positive? [args.pop, .fetch(:keys) { [] }, .fetch(:argv) { [] }] else keys, argv = args.shift(2) keys ||= [] argv ||= [] [args.pop, keys, argv] end end |
.max_history ⇒ Object
113 114 115 |
# File 'lib/sidekiq_unique_jobs/script/caller.rb', line 113 def max_history SidekiqUniqueJobs.config.max_history end |
.now_f ⇒ Object
99 100 101 |
# File 'lib/sidekiq_unique_jobs/script/caller.rb', line 99 def now_f SidekiqUniqueJobs.now_f end |
.redis_version ⇒ Object
120 121 122 |
# File 'lib/sidekiq_unique_jobs/script/caller.rb', line 120 def redis_version SidekiqUniqueJobs.config.redis_version end |