sidekiq-recursive 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 167fe7d1d7abfc01a5b0efd0ae38c6a973a36123ee4c0f46af01e82a84aa3bf8
4
- data.tar.gz: 0f69a42dbca65d9e598cd62514e761f41cce05bc84a6a8fbb85ec9dfc96b6ad3
3
+ metadata.gz: 1d53c4fb9b4dbdc525a168796d1f8340e436c4d89ff1490b3d46a0ffce0469f8
4
+ data.tar.gz: c6a66d65b9f0ed6438f21f8969a58f1463a8a6afee6c0ded64de5614cbfbb903
5
5
  SHA512:
6
- metadata.gz: d3e0c107ea4dc180ca9ce67ca578881ca99e233882ebda43f271ed6da56df98c210c1c09239eeec958b4a94da939b1a6768ce329a3f9d46251b4dc442efd2aab
7
- data.tar.gz: b85598a1f13ab9a6ce0fe4d773d1c9e47167f3a6eda4df2201078f43d7767ac5718d48cf576de756583051f302fe078d8fedc76b5f7d17aa78b830bf04e72bf3
6
+ metadata.gz: ab3d30b806cfeceea20dfa20822b49d3d791b52b805b4d09062669b5de7e1a995c901f8f6033e25bb740e0e2524d7a827e9d2d34ff7c9ff3556799f2e80d5b24
7
+ data.tar.gz: 1cb96f287e0bdb0ac4aea8aa3b51b20b426975d69ebd4d03964b5d5225f93326fb3159833440d9d9e62c88ea4ded5b413f52bbf594123d23fca52ecaeb171010
@@ -1,21 +1,21 @@
1
1
  class Sidekiq::Recursive::ArgumentQueue
2
2
  class << self
3
- def push(worker, arguments)
4
- arguments_queue_name = generate_arguments_queue_name(worker)
3
+ def push(worker_class, arguments)
4
+ arguments_queue_name = generate_arguments_queue_name(worker_class)
5
5
  redis_client.rpush(arguments_queue_name, arguments)
6
6
 
7
7
  true
8
8
  end
9
9
 
10
- def pop(worker)
11
- arguments_queue_name = generate_arguments_queue_name(worker)
10
+ def pop(worker_class)
11
+ arguments_queue_name = generate_arguments_queue_name(worker_class)
12
12
  redis_client.lpop(arguments_queue_name)
13
13
  end
14
14
 
15
15
  private
16
16
 
17
- def generate_arguments_queue_name(worker)
18
- worker.to_s
17
+ def generate_arguments_queue_name(worker_class)
18
+ "recursive_queue__#{worker_class}"
19
19
  end
20
20
 
21
21
  def redis_client
@@ -1,9 +1,10 @@
1
1
  class Sidekiq::Recursive::Hooks::AfterAll
2
- def self.run(worker, worker_id)
3
- action_name = worker.after_all
2
+ def self.run(worker_class, worker_id)
3
+ action_name = worker_class.after_all
4
4
  return unless action_name
5
- return unless worker.recursive_worker_count == worker_id
6
- worker.new.send(action_name)
5
+ return unless worker_class.worker_count == worker_id
6
+
7
+ worker_class.new.send(action_name)
7
8
  true
8
9
  end
9
10
  end
@@ -1,8 +1,10 @@
1
1
  class Sidekiq::Recursive::Hooks::BeforeAll
2
- def self.run(worker)
3
- action_name = worker.before_all
2
+ def self.run(worker_class)
3
+ action_name = worker_class.before_all
4
4
  return unless action_name
5
- worker.new.send(action_name)
5
+
6
+ worker_class.new.send(action_name)
7
+
6
8
  true
7
9
  end
8
10
  end
@@ -1,11 +1,13 @@
1
1
  class Sidekiq::Recursive::Perform
2
2
  def self.run(worker_instance, worker_id, argument)
3
- worker = worker_instance.class
4
- return worker_instance.process(argument) if worker_id == :failed_worker
3
+ worker_class = worker_instance.class
4
+ return worker_instance.process(argument) if worker_id == Sidekiq::Recursive::FAILED_WORKER_ID
5
+
5
6
  safe_process(worker_instance, argument)
6
- next_argument = Sidekiq::Recursive::ArgumentQueue.pop(worker)
7
- return Sidekiq::Recursive::Hooks::AfterAll.run(worker, worker_id) unless next_argument
8
- worker.perform_async(worker_id, next_argument)
7
+ next_argument = Sidekiq::Recursive::ArgumentQueue.pop(worker_class)
8
+ return Sidekiq::Recursive::Hooks::AfterAll.run(worker_class, worker_id) unless next_argument
9
+
10
+ worker_class.perform_async(worker_id, next_argument)
9
11
 
10
12
  true
11
13
  end
@@ -13,6 +15,6 @@ class Sidekiq::Recursive::Perform
13
15
  def self.safe_process(worker_instance, argument)
14
16
  worker_instance.process(argument)
15
17
  rescue StandardError
16
- worker_instance.class.perform_async(:failed_worker, argument)
18
+ worker_instance.class.perform_async(Sidekiq::Recursive::FAILED_WORKER_ID, argument)
17
19
  end
18
20
  end
@@ -1,11 +1,11 @@
1
1
  class Sidekiq::Recursive::Start
2
- def self.run(worker, arguments)
3
- Sidekiq::Recursive::ArgumentQueue.push(worker, arguments)
4
- Sidekiq::Recursive::Hooks::BeforeAll.run(worker)
2
+ def self.run(worker_class, arguments)
3
+ Sidekiq::Recursive::ArgumentQueue.push(worker_class, arguments)
4
+ Sidekiq::Recursive::Hooks::BeforeAll.run(worker_class)
5
5
 
6
- 1.upto(worker.recursive_worker_count) do |worker_id|
7
- argument = Sidekiq::Recursive::ArgumentQueue.pop(worker)
8
- worker.perform_async(worker_id, argument)
6
+ 1.upto(worker_class.worker_count) do |worker_id|
7
+ argument = Sidekiq::Recursive::ArgumentQueue.pop(worker_class)
8
+ worker_class.perform_async(worker_id, argument)
9
9
  end
10
10
 
11
11
  true
@@ -5,14 +5,18 @@ module Sidekiq::Recursive::Worker
5
5
  end
6
6
 
7
7
  module ClassMethods
8
- def run(arguments)
8
+ def call(arguments)
9
9
  Sidekiq::Recursive::Start.run(self, arguments)
10
+
10
11
  true
11
12
  end
12
13
 
13
- def recursive_worker_count(count = nil)
14
- raise Sidekiq::Recursive::UndefinedWorkerCountError if count.nil? && @worker_count.nil?
15
- @worker_count ||= count
14
+ def recursive_worker_count(worker_count)
15
+ @worker_count = worker_count
16
+ end
17
+
18
+ def worker_count
19
+ @worker_count
16
20
  end
17
21
 
18
22
  def before_all(action_name = nil)
@@ -27,6 +31,7 @@ module Sidekiq::Recursive::Worker
27
31
  module InstanceMethods
28
32
  def perform(worker_id, argument)
29
33
  Sidekiq::Recursive::Perform.run(self, worker_id, argument)
34
+
30
35
  true
31
36
  end
32
37
  end
@@ -1,15 +1,14 @@
1
- require 'sidekiq/recursive/version'
1
+ module Sidekiq
2
+ module Recursive
3
+ FAILED_WORKER_ID = 'failed_worker'
4
+
5
+ module Hooks; end
6
+ end
7
+ end
2
8
 
3
9
  require 'sidekiq/recursive/argument_queue'
4
- require 'sidekiq/recursive/hooks'
5
10
  require 'sidekiq/recursive/hooks/after_all'
6
11
  require 'sidekiq/recursive/hooks/before_all'
7
12
  require 'sidekiq/recursive/perform'
8
13
  require 'sidekiq/recursive/start'
9
14
  require 'sidekiq/recursive/worker'
10
-
11
- module Sidekiq
12
- module Recursive
13
- class UndefinedWorkerCountError < StandardError; end
14
- end
15
- end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-recursive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justas Kazakauskas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-23 00:00:00.000000000 Z
11
+ date: 2024-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sidekiq
@@ -17,9 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.0'
20
- - - "~>"
20
+ - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.0'
22
+ version: '8.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,9 +27,9 @@ dependencies:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: '3.0'
30
- - - "~>"
30
+ - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.0'
32
+ version: '8.0'
33
33
  description: Use simple recursion to limit sidekiq workers per job.
34
34
  email: leakymirror@gmail.com
35
35
  executables: []
@@ -38,12 +38,10 @@ extra_rdoc_files: []
38
38
  files:
39
39
  - lib/sidekiq/recursive.rb
40
40
  - lib/sidekiq/recursive/argument_queue.rb
41
- - lib/sidekiq/recursive/hooks.rb
42
41
  - lib/sidekiq/recursive/hooks/after_all.rb
43
42
  - lib/sidekiq/recursive/hooks/before_all.rb
44
43
  - lib/sidekiq/recursive/perform.rb
45
44
  - lib/sidekiq/recursive/start.rb
46
- - lib/sidekiq/recursive/version.rb
47
45
  - lib/sidekiq/recursive/worker.rb
48
46
  homepage: https://github.com/justaskz/sidekiq-recursive
49
47
  licenses:
@@ -1,2 +0,0 @@
1
- module Sidekiq::Recursive::Hooks
2
- end
@@ -1,5 +0,0 @@
1
- module Sidekiq
2
- module Recursive
3
- VERSION = '0.2.1'
4
- end
5
- end