sidekiq-recursive 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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