Skip to content

Commit

Permalink
chore: refactor redis_script into script
Browse files Browse the repository at this point in the history
  • Loading branch information
mhenrixon committed Jan 24, 2024
1 parent 70f44f2 commit 9e19568
Show file tree
Hide file tree
Showing 13 changed files with 53 additions and 80 deletions.
2 changes: 1 addition & 1 deletion lib/sidekiq_unique_jobs.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
require "redis_client"
require "sidekiq"

require "sidekiq_unique_jobs/redis_script"
require "sidekiq_unique_jobs/script"

require "sidekiq_unique_jobs/deprecation"
require "sidekiq_unique_jobs/reflections"
Expand Down
58 changes: 0 additions & 58 deletions lib/sidekiq_unique_jobs/redis_script.rb

This file was deleted.

33 changes: 32 additions & 1 deletion lib/sidekiq_unique_jobs/script.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,46 @@
# frozen_string_literal: true

require "sidekiq_unique_jobs/script/template"
require "sidekiq_unique_jobs/script/lua_error"
require "sidekiq_unique_jobs/script/script"
require "sidekiq_unique_jobs/script/scripts"
require "sidekiq_unique_jobs/script/config"
require "sidekiq_unique_jobs/script/timing"
require "sidekiq_unique_jobs/script/logging"
require "sidekiq_unique_jobs/script/dsl"
require "sidekiq_unique_jobs/script/client"

module SidekiqUniqueJobs
# Interface to dealing with .lua files
#
# @author Mikael Henriksson <[email protected]>
module Script
include SidekiqUniqueJobs::RedisScript::DSL
include SidekiqUniqueJobs::Script::DSL

configure do |config|
config.scripts_path = Pathname.new(__FILE__).dirname.join("lua")
config.logger = Sidekiq.logger # TODO: This becomes a little weird
end

#
# The current logger
#
#
# @return [Logger] the configured logger
#
def self.logger
config.logger
end

#
# Set a new logger
#
# @param [Logger] other another logger
#
# @return [Logger] the new logger
#
def self.logger=(other)
config.logger = other
end
end
end
2 changes: 1 addition & 1 deletion lib/sidekiq_unique_jobs/script/caller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def call_script(file_name, *args)
def do_call(file_name, conn, keys, argv)
argv = argv.dup.push(now_f, debug_lua, max_history, file_name, redis_version)

Script.execute(file_name, conn, keys: keys, argv: normalize_argv(argv))
SidekiqUniqueJobs::Script.execute(file_name, conn, keys: keys, argv: normalize_argv(argv))
end

#
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# frozen_string_literal: true
# frozen_string_literal: true

module SidekiqUniqueJobs
module RedisScript
module Script
# Interface to dealing with .lua files
#
# @author Mikael Henriksson <[email protected]>
class Client
include SidekiqUniqueJobs::RedisScript::Timing
include SidekiqUniqueJobs::Script::Timing

#
# @!attribute [r] logger
Expand Down Expand Up @@ -47,7 +47,7 @@ def execute(script_name, conn, keys: [], argv: [])

logger.debug("Executed #{script_name}.lua in #{elapsed}ms")
result
rescue ::Redis::CommandError => ex
rescue ::RedisClient::CommandError => ex
handle_error(script_name, conn, ex) do
execute(script_name, conn, keys: keys, argv: argv)
end
Expand All @@ -58,7 +58,7 @@ def execute(script_name, conn, keys: [], argv: [])
#
# Handle errors to allow retrying errors that need retrying
#
# @param [Redis::CommandError] ex exception to handle
# @param [RedisClient::CommandError] ex exception to handle
#
# @return [void]
#
Expand All @@ -84,7 +84,7 @@ def handle_noscript(script_name)

def handle_busy(conn)
scripts.kill(conn)
rescue ::Redis::CommandError => ex
rescue ::RedisClient::CommandError => ex
logger.warn(ex)
ensure
yield
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true
# frozen_string_literal: true

module SidekiqUniqueJobs
module RedisScript
module Script
#
# Class holding gem configuration
#
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module SidekiqUniqueJobs
module RedisScript
module Script
# Interface to dealing with .lua files
#
# @author Mikael Henriksson <[email protected]>
Expand All @@ -21,7 +21,7 @@ def self.included(base)
#
module ClassMethods
def execute(file_name, conn, keys: [], argv: [])
SidekiqUniqueJobs::RedisScript::Client
SidekiqUniqueJobs::Script::Client
.new(config)
.execute(file_name, conn, keys: keys, argv: argv)
end
Expand All @@ -47,7 +47,7 @@ def configure(options = {})
# The current configuration (See: {.configure} on how to configure)
#
#
# @return [RedisScript::Config] the gem configuration
# @return [Script::Config] the gem configuration
#
def config
MUTEX.synchronize do
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module SidekiqUniqueJobs
module RedisScript
module Script
# Utility module for reducing the number of uses of logger.
#
# @author Mikael Henriksson <[email protected]>
Expand All @@ -13,12 +13,12 @@ def self.included(base)
#
# A convenience method for using the configured gem logger
#
# @see RedisScript#.logger
# @see Script#.logger
#
# @return [Logger]
#
def logger
SidekiqUniqueJobs::RedisScript.logger
SidekiqUniqueJobs::Script.logger
end

#
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module SidekiqUniqueJobs
module RedisScript
module Script
#
# Misconfiguration is raised when gem is misconfigured
#
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module SidekiqUniqueJobs
module RedisScript
module Script
# Interface to dealing with .lua files
#
# @author Mikael Henriksson <[email protected]>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module SidekiqUniqueJobs
module RedisScript
module Script
# Interface to dealing with .lua files
#
# @author Mikael Henriksson <[email protected]>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module SidekiqUniqueJobs
# Interface to dealing with .lua files
#
# @author Mikael Henriksson <[email protected]>
module RedisScript
module Script
#
# Class Template provides LUA script partial template rendering
#
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

module SidekiqUniqueJobs
module RedisScript
module Script
# Handles timing> of things
#
# @author Mikael Henriksson <[email protected]>
Expand Down

0 comments on commit 9e19568

Please sign in to comment.