sidekiq-unique-jobs 3.0.11 → 8.0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +2163 -25
  3. data/LICENSE.txt +21 -0
  4. data/README.md +984 -47
  5. data/bin/uniquejobs +7 -0
  6. data/lib/sidekiq-unique-jobs.rb +2 -36
  7. data/lib/sidekiq_unique_jobs/batch_delete.rb +120 -0
  8. data/lib/sidekiq_unique_jobs/changelog.rb +68 -0
  9. data/lib/sidekiq_unique_jobs/cli.rb +95 -0
  10. data/lib/sidekiq_unique_jobs/config.rb +306 -33
  11. data/lib/sidekiq_unique_jobs/connection.rb +20 -0
  12. data/lib/sidekiq_unique_jobs/constants.rb +55 -0
  13. data/lib/sidekiq_unique_jobs/core_ext.rb +132 -0
  14. data/lib/sidekiq_unique_jobs/deprecation.rb +65 -0
  15. data/lib/sidekiq_unique_jobs/digests.rb +134 -0
  16. data/lib/sidekiq_unique_jobs/exceptions.rb +105 -0
  17. data/lib/sidekiq_unique_jobs/expiring_digests.rb +14 -0
  18. data/lib/sidekiq_unique_jobs/job.rb +63 -0
  19. data/lib/sidekiq_unique_jobs/json.rb +47 -0
  20. data/lib/sidekiq_unique_jobs/key.rb +98 -0
  21. data/lib/sidekiq_unique_jobs/lock/base_lock.rb +165 -0
  22. data/lib/sidekiq_unique_jobs/lock/client_validator.rb +28 -0
  23. data/lib/sidekiq_unique_jobs/lock/server_validator.rb +27 -0
  24. data/lib/sidekiq_unique_jobs/lock/until_and_while_executing.rb +71 -0
  25. data/lib/sidekiq_unique_jobs/lock/until_executed.rb +48 -0
  26. data/lib/sidekiq_unique_jobs/lock/until_executing.rb +43 -0
  27. data/lib/sidekiq_unique_jobs/lock/until_expired.rb +42 -0
  28. data/lib/sidekiq_unique_jobs/lock/validator.rb +96 -0
  29. data/lib/sidekiq_unique_jobs/lock/while_executing.rb +70 -0
  30. data/lib/sidekiq_unique_jobs/lock/while_executing_reject.rb +21 -0
  31. data/lib/sidekiq_unique_jobs/lock.rb +348 -0
  32. data/lib/sidekiq_unique_jobs/lock_args.rb +127 -0
  33. data/lib/sidekiq_unique_jobs/lock_config.rb +132 -0
  34. data/lib/sidekiq_unique_jobs/lock_digest.rb +79 -0
  35. data/lib/sidekiq_unique_jobs/lock_info.rb +68 -0
  36. data/lib/sidekiq_unique_jobs/lock_timeout.rb +62 -0
  37. data/lib/sidekiq_unique_jobs/lock_ttl.rb +77 -0
  38. data/lib/sidekiq_unique_jobs/lock_type.rb +37 -0
  39. data/lib/sidekiq_unique_jobs/locksmith.rb +390 -0
  40. data/lib/sidekiq_unique_jobs/logging/middleware_context.rb +44 -0
  41. data/lib/sidekiq_unique_jobs/logging.rb +236 -0
  42. data/lib/sidekiq_unique_jobs/lua/delete.lua +49 -0
  43. data/lib/sidekiq_unique_jobs/lua/delete_by_digest.lua +39 -0
  44. data/lib/sidekiq_unique_jobs/lua/delete_job_by_digest.lua +38 -0
  45. data/lib/sidekiq_unique_jobs/lua/find_digest_in_queues.lua +26 -0
  46. data/lib/sidekiq_unique_jobs/lua/lock.lua +108 -0
  47. data/lib/sidekiq_unique_jobs/lua/lock_until_expired.lua +92 -0
  48. data/lib/sidekiq_unique_jobs/lua/locked.lua +35 -0
  49. data/lib/sidekiq_unique_jobs/lua/queue.lua +88 -0
  50. data/lib/sidekiq_unique_jobs/lua/reap_orphans.lua +119 -0
  51. data/lib/sidekiq_unique_jobs/lua/shared/_common.lua +35 -0
  52. data/lib/sidekiq_unique_jobs/lua/shared/_current_time.lua +8 -0
  53. data/lib/sidekiq_unique_jobs/lua/shared/_delete_from_queue.lua +22 -0
  54. data/lib/sidekiq_unique_jobs/lua/shared/_delete_from_sorted_set.lua +29 -0
  55. data/lib/sidekiq_unique_jobs/lua/shared/_find_digest_in_process_set.lua +53 -0
  56. data/lib/sidekiq_unique_jobs/lua/shared/_find_digest_in_queues.lua +43 -0
  57. data/lib/sidekiq_unique_jobs/lua/shared/_find_digest_in_sorted_set.lua +24 -0
  58. data/lib/sidekiq_unique_jobs/lua/shared/_hgetall.lua +13 -0
  59. data/lib/sidekiq_unique_jobs/lua/shared/_upgrades.lua +3 -0
  60. data/lib/sidekiq_unique_jobs/lua/unlock.lua +112 -0
  61. data/lib/sidekiq_unique_jobs/lua/update_version.lua +40 -0
  62. data/lib/sidekiq_unique_jobs/lua/upgrade.lua +66 -0
  63. data/lib/sidekiq_unique_jobs/middleware/client.rb +42 -0
  64. data/lib/sidekiq_unique_jobs/middleware/server.rb +31 -0
  65. data/lib/sidekiq_unique_jobs/middleware.rb +41 -15
  66. data/lib/sidekiq_unique_jobs/normalizer.rb +17 -0
  67. data/lib/sidekiq_unique_jobs/on_conflict/log.rb +24 -0
  68. data/lib/sidekiq_unique_jobs/on_conflict/null_strategy.rb +16 -0
  69. data/lib/sidekiq_unique_jobs/on_conflict/raise.rb +17 -0
  70. data/lib/sidekiq_unique_jobs/on_conflict/reject.rb +75 -0
  71. data/lib/sidekiq_unique_jobs/on_conflict/replace.rb +82 -0
  72. data/lib/sidekiq_unique_jobs/on_conflict/reschedule.rb +39 -0
  73. data/lib/sidekiq_unique_jobs/on_conflict/strategy.rb +51 -0
  74. data/lib/sidekiq_unique_jobs/on_conflict.rb +44 -0
  75. data/lib/sidekiq_unique_jobs/options_with_fallback.rb +78 -0
  76. data/lib/sidekiq_unique_jobs/orphans/lua_reaper.rb +29 -0
  77. data/lib/sidekiq_unique_jobs/orphans/manager.rb +242 -0
  78. data/lib/sidekiq_unique_jobs/orphans/null_reaper.rb +24 -0
  79. data/lib/sidekiq_unique_jobs/orphans/observer.rb +42 -0
  80. data/lib/sidekiq_unique_jobs/orphans/reaper.rb +115 -0
  81. data/lib/sidekiq_unique_jobs/orphans/reaper_resurrector.rb +170 -0
  82. data/lib/sidekiq_unique_jobs/orphans/ruby_reaper.rb +313 -0
  83. data/lib/sidekiq_unique_jobs/redis/entity.rb +112 -0
  84. data/lib/sidekiq_unique_jobs/redis/hash.rb +56 -0
  85. data/lib/sidekiq_unique_jobs/redis/list.rb +32 -0
  86. data/lib/sidekiq_unique_jobs/redis/set.rb +32 -0
  87. data/lib/sidekiq_unique_jobs/redis/sorted_set.rb +102 -0
  88. data/lib/sidekiq_unique_jobs/redis/string.rb +51 -0
  89. data/lib/sidekiq_unique_jobs/redis.rb +11 -0
  90. data/lib/sidekiq_unique_jobs/reflectable.rb +26 -0
  91. data/lib/sidekiq_unique_jobs/reflections.rb +79 -0
  92. data/lib/sidekiq_unique_jobs/rspec/matchers/have_valid_sidekiq_options.rb +51 -0
  93. data/lib/sidekiq_unique_jobs/rspec/matchers.rb +26 -0
  94. data/lib/sidekiq_unique_jobs/script/caller.rb +133 -0
  95. data/lib/sidekiq_unique_jobs/script/client.rb +94 -0
  96. data/lib/sidekiq_unique_jobs/script/config.rb +68 -0
  97. data/lib/sidekiq_unique_jobs/script/dsl.rb +60 -0
  98. data/lib/sidekiq_unique_jobs/script/logging.rb +95 -0
  99. data/lib/sidekiq_unique_jobs/script/lua_error.rb +96 -0
  100. data/lib/sidekiq_unique_jobs/script/script.rb +75 -0
  101. data/lib/sidekiq_unique_jobs/script/scripts.rb +123 -0
  102. data/lib/sidekiq_unique_jobs/script/template.rb +41 -0
  103. data/lib/sidekiq_unique_jobs/script/timing.rb +35 -0
  104. data/lib/sidekiq_unique_jobs/script.rb +46 -0
  105. data/lib/sidekiq_unique_jobs/server.rb +62 -0
  106. data/lib/sidekiq_unique_jobs/sidekiq_unique_ext.rb +110 -37
  107. data/lib/sidekiq_unique_jobs/sidekiq_unique_jobs.rb +304 -0
  108. data/lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb +84 -0
  109. data/lib/sidekiq_unique_jobs/testing.rb +132 -9
  110. data/lib/sidekiq_unique_jobs/timer_task.rb +299 -0
  111. data/lib/sidekiq_unique_jobs/timing.rb +58 -0
  112. data/lib/sidekiq_unique_jobs/unlockable.rb +43 -0
  113. data/lib/sidekiq_unique_jobs/update_version.rb +25 -0
  114. data/lib/sidekiq_unique_jobs/upgrade_locks.rb +152 -0
  115. data/lib/sidekiq_unique_jobs/version.rb +5 -1
  116. data/lib/sidekiq_unique_jobs/version_check.rb +114 -0
  117. data/lib/sidekiq_unique_jobs/web/helpers.rb +175 -0
  118. data/lib/sidekiq_unique_jobs/web/views/_paging.erb +10 -0
  119. data/lib/sidekiq_unique_jobs/web/views/changelogs.erb +60 -0
  120. data/lib/sidekiq_unique_jobs/web/views/lock.erb +110 -0
  121. data/lib/sidekiq_unique_jobs/web/views/locks.erb +59 -0
  122. data/lib/sidekiq_unique_jobs/web.rb +109 -0
  123. data/lib/sidekiq_unique_jobs.rb +83 -0
  124. data/lib/tasks/changelog.rake +23 -0
  125. metadata +157 -126
  126. data/.gitignore +0 -10
  127. data/.rspec +0 -3
  128. data/.rubocop.yml +0 -36
  129. data/.travis.yml +0 -25
  130. data/Appraisals +0 -20
  131. data/Gemfile +0 -5
  132. data/LICENSE +0 -22
  133. data/Rakefile +0 -11
  134. data/gemfiles/sidekiq_2.15.gemfile +0 -9
  135. data/gemfiles/sidekiq_2.16.gemfile +0 -9
  136. data/gemfiles/sidekiq_2.17.gemfile +0 -9
  137. data/gemfiles/sidekiq_3.0.gemfile +0 -9
  138. data/gemfiles/sidekiq_develop.gemfile +0 -9
  139. data/lib/sidekiq_unique_jobs/connectors/redis_pool.rb +0 -11
  140. data/lib/sidekiq_unique_jobs/connectors/sidekiq_redis.rb +0 -9
  141. data/lib/sidekiq_unique_jobs/connectors/testing.rb +0 -11
  142. data/lib/sidekiq_unique_jobs/connectors.rb +0 -16
  143. data/lib/sidekiq_unique_jobs/middleware/client/strategies/testing_inline.rb +0 -25
  144. data/lib/sidekiq_unique_jobs/middleware/client/strategies/unique.rb +0 -76
  145. data/lib/sidekiq_unique_jobs/middleware/client/unique_jobs.rb +0 -39
  146. data/lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb +0 -69
  147. data/lib/sidekiq_unique_jobs/payload_helper.rb +0 -42
  148. data/sidekiq-unique-jobs.gemspec +0 -27
  149. data/spec/lib/.sidekiq_testing_enabled_spec.rb.swp +0 -0
  150. data/spec/lib/client_spec.rb +0 -173
  151. data/spec/lib/middleware/server/unique_jobs_spec.rb +0 -81
  152. data/spec/lib/sidekiq_testing_enabled_spec.rb +0 -123
  153. data/spec/lib/sidekiq_unique_ext_spec.rb +0 -70
  154. data/spec/lib/unlock_order_spec.rb +0 -64
  155. data/spec/spec_helper.rb +0 -37
  156. data/spec/support/my_worker.rb +0 -13
  157. data/spec/support/sidekiq_meta.rb +0 -17
  158. data/spec/support/unique_worker.rb +0 -13
metadata CHANGED
@@ -1,181 +1,214 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sidekiq-unique-jobs
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.11
4
+ version: 8.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikael Henriksson
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-15 00:00:00.000000000 Z
11
+ date: 2024-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: sidekiq
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '2.6'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '2.6'
27
- - !ruby/object:Gem::Dependency
28
- name: mock_redis
14
+ name: concurrent-ruby
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
- - - ">="
17
+ - - "~>"
32
18
  - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
19
+ version: '1.0'
38
20
  - - ">="
39
21
  - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: 3.1.0
48
- type: :development
22
+ version: 1.0.5
23
+ type: :runtime
49
24
  prerelease: false
50
25
  version_requirements: !ruby/object:Gem::Requirement
51
26
  requirements:
52
27
  - - "~>"
53
28
  - !ruby/object:Gem::Version
54
- version: 3.1.0
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
29
+ version: '1.0'
59
30
  - - ">="
60
31
  - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
32
+ version: 1.0.5
69
33
  - !ruby/object:Gem::Dependency
70
- name: rspec-sidekiq
34
+ name: sidekiq
71
35
  requirement: !ruby/object:Gem::Requirement
72
36
  requirements:
73
37
  - - ">="
74
38
  - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: activesupport
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
39
+ version: 7.0.0
40
+ - - "<"
88
41
  - !ruby/object:Gem::Version
89
- version: '3'
90
- type: :development
42
+ version: 8.0.0
43
+ type: :runtime
91
44
  prerelease: false
92
45
  version_requirements: !ruby/object:Gem::Requirement
93
46
  requirements:
94
47
  - - ">="
95
48
  - !ruby/object:Gem::Version
96
- version: '3'
97
- - !ruby/object:Gem::Dependency
98
- name: rubocop
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
49
+ version: 7.0.0
50
+ - - "<"
102
51
  - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
52
+ version: 8.0.0
111
53
  - !ruby/object:Gem::Dependency
112
- name: simplecov
54
+ name: thor
113
55
  requirement: !ruby/object:Gem::Requirement
114
56
  requirements:
115
57
  - - ">="
116
58
  - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
59
+ version: '1.0'
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '3.0'
63
+ type: :runtime
119
64
  prerelease: false
120
65
  version_requirements: !ruby/object:Gem::Requirement
121
66
  requirements:
122
67
  - - ">="
123
68
  - !ruby/object:Gem::Version
124
- version: '0'
125
- description: The unique jobs that were removed from sidekiq
69
+ version: '1.0'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '3.0'
73
+ description: |
74
+ Prevents simultaneous Sidekiq jobs with the same unique arguments to run.
75
+ Highly configurable to suite your specific needs.
126
76
  email:
127
- - mikael@zoolutions.se
128
- executables: []
77
+ - mikael@mhenrixon.com
78
+ executables:
79
+ - uniquejobs
129
80
  extensions: []
130
81
  extra_rdoc_files: []
131
82
  files:
132
- - ".gitignore"
133
- - ".rspec"
134
- - ".rubocop.yml"
135
- - ".travis.yml"
136
- - Appraisals
137
83
  - CHANGELOG.md
138
- - Gemfile
139
- - LICENSE
84
+ - LICENSE.txt
140
85
  - README.md
141
- - Rakefile
142
- - gemfiles/sidekiq_2.15.gemfile
143
- - gemfiles/sidekiq_2.16.gemfile
144
- - gemfiles/sidekiq_2.17.gemfile
145
- - gemfiles/sidekiq_3.0.gemfile
146
- - gemfiles/sidekiq_develop.gemfile
86
+ - bin/uniquejobs
147
87
  - lib/sidekiq-unique-jobs.rb
88
+ - lib/sidekiq_unique_jobs.rb
89
+ - lib/sidekiq_unique_jobs/batch_delete.rb
90
+ - lib/sidekiq_unique_jobs/changelog.rb
91
+ - lib/sidekiq_unique_jobs/cli.rb
148
92
  - lib/sidekiq_unique_jobs/config.rb
149
- - lib/sidekiq_unique_jobs/connectors.rb
150
- - lib/sidekiq_unique_jobs/connectors/redis_pool.rb
151
- - lib/sidekiq_unique_jobs/connectors/sidekiq_redis.rb
152
- - lib/sidekiq_unique_jobs/connectors/testing.rb
93
+ - lib/sidekiq_unique_jobs/connection.rb
94
+ - lib/sidekiq_unique_jobs/constants.rb
95
+ - lib/sidekiq_unique_jobs/core_ext.rb
96
+ - lib/sidekiq_unique_jobs/deprecation.rb
97
+ - lib/sidekiq_unique_jobs/digests.rb
98
+ - lib/sidekiq_unique_jobs/exceptions.rb
99
+ - lib/sidekiq_unique_jobs/expiring_digests.rb
100
+ - lib/sidekiq_unique_jobs/job.rb
101
+ - lib/sidekiq_unique_jobs/json.rb
102
+ - lib/sidekiq_unique_jobs/key.rb
103
+ - lib/sidekiq_unique_jobs/lock.rb
104
+ - lib/sidekiq_unique_jobs/lock/base_lock.rb
105
+ - lib/sidekiq_unique_jobs/lock/client_validator.rb
106
+ - lib/sidekiq_unique_jobs/lock/server_validator.rb
107
+ - lib/sidekiq_unique_jobs/lock/until_and_while_executing.rb
108
+ - lib/sidekiq_unique_jobs/lock/until_executed.rb
109
+ - lib/sidekiq_unique_jobs/lock/until_executing.rb
110
+ - lib/sidekiq_unique_jobs/lock/until_expired.rb
111
+ - lib/sidekiq_unique_jobs/lock/validator.rb
112
+ - lib/sidekiq_unique_jobs/lock/while_executing.rb
113
+ - lib/sidekiq_unique_jobs/lock/while_executing_reject.rb
114
+ - lib/sidekiq_unique_jobs/lock_args.rb
115
+ - lib/sidekiq_unique_jobs/lock_config.rb
116
+ - lib/sidekiq_unique_jobs/lock_digest.rb
117
+ - lib/sidekiq_unique_jobs/lock_info.rb
118
+ - lib/sidekiq_unique_jobs/lock_timeout.rb
119
+ - lib/sidekiq_unique_jobs/lock_ttl.rb
120
+ - lib/sidekiq_unique_jobs/lock_type.rb
121
+ - lib/sidekiq_unique_jobs/locksmith.rb
122
+ - lib/sidekiq_unique_jobs/logging.rb
123
+ - lib/sidekiq_unique_jobs/logging/middleware_context.rb
124
+ - lib/sidekiq_unique_jobs/lua/delete.lua
125
+ - lib/sidekiq_unique_jobs/lua/delete_by_digest.lua
126
+ - lib/sidekiq_unique_jobs/lua/delete_job_by_digest.lua
127
+ - lib/sidekiq_unique_jobs/lua/find_digest_in_queues.lua
128
+ - lib/sidekiq_unique_jobs/lua/lock.lua
129
+ - lib/sidekiq_unique_jobs/lua/lock_until_expired.lua
130
+ - lib/sidekiq_unique_jobs/lua/locked.lua
131
+ - lib/sidekiq_unique_jobs/lua/queue.lua
132
+ - lib/sidekiq_unique_jobs/lua/reap_orphans.lua
133
+ - lib/sidekiq_unique_jobs/lua/shared/_common.lua
134
+ - lib/sidekiq_unique_jobs/lua/shared/_current_time.lua
135
+ - lib/sidekiq_unique_jobs/lua/shared/_delete_from_queue.lua
136
+ - lib/sidekiq_unique_jobs/lua/shared/_delete_from_sorted_set.lua
137
+ - lib/sidekiq_unique_jobs/lua/shared/_find_digest_in_process_set.lua
138
+ - lib/sidekiq_unique_jobs/lua/shared/_find_digest_in_queues.lua
139
+ - lib/sidekiq_unique_jobs/lua/shared/_find_digest_in_sorted_set.lua
140
+ - lib/sidekiq_unique_jobs/lua/shared/_hgetall.lua
141
+ - lib/sidekiq_unique_jobs/lua/shared/_upgrades.lua
142
+ - lib/sidekiq_unique_jobs/lua/unlock.lua
143
+ - lib/sidekiq_unique_jobs/lua/update_version.lua
144
+ - lib/sidekiq_unique_jobs/lua/upgrade.lua
153
145
  - lib/sidekiq_unique_jobs/middleware.rb
154
- - lib/sidekiq_unique_jobs/middleware/client/strategies/testing_inline.rb
155
- - lib/sidekiq_unique_jobs/middleware/client/strategies/unique.rb
156
- - lib/sidekiq_unique_jobs/middleware/client/unique_jobs.rb
157
- - lib/sidekiq_unique_jobs/middleware/server/unique_jobs.rb
158
- - lib/sidekiq_unique_jobs/payload_helper.rb
146
+ - lib/sidekiq_unique_jobs/middleware/client.rb
147
+ - lib/sidekiq_unique_jobs/middleware/server.rb
148
+ - lib/sidekiq_unique_jobs/normalizer.rb
149
+ - lib/sidekiq_unique_jobs/on_conflict.rb
150
+ - lib/sidekiq_unique_jobs/on_conflict/log.rb
151
+ - lib/sidekiq_unique_jobs/on_conflict/null_strategy.rb
152
+ - lib/sidekiq_unique_jobs/on_conflict/raise.rb
153
+ - lib/sidekiq_unique_jobs/on_conflict/reject.rb
154
+ - lib/sidekiq_unique_jobs/on_conflict/replace.rb
155
+ - lib/sidekiq_unique_jobs/on_conflict/reschedule.rb
156
+ - lib/sidekiq_unique_jobs/on_conflict/strategy.rb
157
+ - lib/sidekiq_unique_jobs/options_with_fallback.rb
158
+ - lib/sidekiq_unique_jobs/orphans/lua_reaper.rb
159
+ - lib/sidekiq_unique_jobs/orphans/manager.rb
160
+ - lib/sidekiq_unique_jobs/orphans/null_reaper.rb
161
+ - lib/sidekiq_unique_jobs/orphans/observer.rb
162
+ - lib/sidekiq_unique_jobs/orphans/reaper.rb
163
+ - lib/sidekiq_unique_jobs/orphans/reaper_resurrector.rb
164
+ - lib/sidekiq_unique_jobs/orphans/ruby_reaper.rb
165
+ - lib/sidekiq_unique_jobs/redis.rb
166
+ - lib/sidekiq_unique_jobs/redis/entity.rb
167
+ - lib/sidekiq_unique_jobs/redis/hash.rb
168
+ - lib/sidekiq_unique_jobs/redis/list.rb
169
+ - lib/sidekiq_unique_jobs/redis/set.rb
170
+ - lib/sidekiq_unique_jobs/redis/sorted_set.rb
171
+ - lib/sidekiq_unique_jobs/redis/string.rb
172
+ - lib/sidekiq_unique_jobs/reflectable.rb
173
+ - lib/sidekiq_unique_jobs/reflections.rb
174
+ - lib/sidekiq_unique_jobs/rspec/matchers.rb
175
+ - lib/sidekiq_unique_jobs/rspec/matchers/have_valid_sidekiq_options.rb
176
+ - lib/sidekiq_unique_jobs/script.rb
177
+ - lib/sidekiq_unique_jobs/script/caller.rb
178
+ - lib/sidekiq_unique_jobs/script/client.rb
179
+ - lib/sidekiq_unique_jobs/script/config.rb
180
+ - lib/sidekiq_unique_jobs/script/dsl.rb
181
+ - lib/sidekiq_unique_jobs/script/logging.rb
182
+ - lib/sidekiq_unique_jobs/script/lua_error.rb
183
+ - lib/sidekiq_unique_jobs/script/script.rb
184
+ - lib/sidekiq_unique_jobs/script/scripts.rb
185
+ - lib/sidekiq_unique_jobs/script/template.rb
186
+ - lib/sidekiq_unique_jobs/script/timing.rb
187
+ - lib/sidekiq_unique_jobs/server.rb
159
188
  - lib/sidekiq_unique_jobs/sidekiq_unique_ext.rb
189
+ - lib/sidekiq_unique_jobs/sidekiq_unique_jobs.rb
190
+ - lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb
160
191
  - lib/sidekiq_unique_jobs/testing.rb
192
+ - lib/sidekiq_unique_jobs/timer_task.rb
193
+ - lib/sidekiq_unique_jobs/timing.rb
194
+ - lib/sidekiq_unique_jobs/unlockable.rb
195
+ - lib/sidekiq_unique_jobs/update_version.rb
196
+ - lib/sidekiq_unique_jobs/upgrade_locks.rb
161
197
  - lib/sidekiq_unique_jobs/version.rb
162
- - sidekiq-unique-jobs.gemspec
163
- - spec/lib/.sidekiq_testing_enabled_spec.rb.swp
164
- - spec/lib/client_spec.rb
165
- - spec/lib/middleware/server/unique_jobs_spec.rb
166
- - spec/lib/sidekiq_testing_enabled_spec.rb
167
- - spec/lib/sidekiq_unique_ext_spec.rb
168
- - spec/lib/unlock_order_spec.rb
169
- - spec/spec_helper.rb
170
- - spec/support/my_worker.rb
171
- - spec/support/sidekiq_meta.rb
172
- - spec/support/unique_worker.rb
198
+ - lib/sidekiq_unique_jobs/version_check.rb
199
+ - lib/sidekiq_unique_jobs/web.rb
200
+ - lib/sidekiq_unique_jobs/web/helpers.rb
201
+ - lib/sidekiq_unique_jobs/web/views/_paging.erb
202
+ - lib/sidekiq_unique_jobs/web/views/changelogs.erb
203
+ - lib/sidekiq_unique_jobs/web/views/lock.erb
204
+ - lib/sidekiq_unique_jobs/web/views/locks.erb
205
+ - lib/tasks/changelog.rake
173
206
  homepage: https://github.com/mhenrixon/sidekiq-unique-jobs
174
207
  licenses:
175
- - LGPL-3.0
176
- metadata: {}
177
- post_install_message: If you are relying on `mock_redis` you will now have to addgem
178
- "mock_redis" to your desired bundler group.
208
+ - MIT
209
+ metadata:
210
+ rubygems_mfa_required: 'true'
211
+ post_install_message:
179
212
  rdoc_options: []
180
213
  require_paths:
181
214
  - lib
@@ -183,17 +216,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
216
  requirements:
184
217
  - - ">="
185
218
  - !ruby/object:Gem::Version
186
- version: '0'
219
+ version: '2.7'
187
220
  required_rubygems_version: !ruby/object:Gem::Requirement
188
221
  requirements:
189
222
  - - ">="
190
223
  - !ruby/object:Gem::Version
191
224
  version: '0'
192
225
  requirements: []
193
- rubyforge_project:
194
- rubygems_version: 2.2.2
195
- signing_key:
226
+ rubygems_version: 3.5.6
227
+ signing_key:
196
228
  specification_version: 4
197
- summary: The unique jobs that were removed from sidekiq
229
+ summary: Sidekiq middleware that prevents duplicates jobs
198
230
  test_files: []
199
- has_rdoc:
data/.gitignore DELETED
@@ -1,10 +0,0 @@
1
-
2
- *.gem
3
-
4
- .DS_Store
5
-
6
- Gemfile.lock
7
-
8
- .ruby-version
9
- .idea/
10
- gemfiles/*.lock
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --color
2
- --format progress
3
- --order random
data/.rubocop.yml DELETED
@@ -1,36 +0,0 @@
1
-
2
- Lint/HandleExceptions:
3
- Enabled: true
4
-
5
- Lint/UselessAssignment:
6
- Enabled: true
7
-
8
- Metrics/AbcSize:
9
- Max: 38
10
-
11
- Metrics/CyclomaticComplexity:
12
- Max: 7
13
-
14
- Metrics/LineLength:
15
- Max: 108
16
-
17
- Metrics/MethodLength:
18
- Max: 13
19
-
20
- Metrics/PerceivedComplexity:
21
- Max: 8
22
-
23
- Style/AccessorMethodName:
24
- Enabled: true
25
-
26
- Style/ConstantName:
27
- Enabled: true
28
-
29
- Style/Documentation:
30
- Enabled: false
31
-
32
- Style/FileName:
33
- Enabled: true
34
-
35
- Style/GlobalVars:
36
- Enabled: true
data/.travis.yml DELETED
@@ -1,25 +0,0 @@
1
- language: ruby
2
- services:
3
- - redis-server
4
- rvm:
5
- - 1.9.3
6
- - jruby-19mode
7
- - rbx-19mode
8
- - 2.0.0
9
- - 2.1.0
10
- gemfile:
11
- - gemfiles/sidekiq_2.15.gemfile
12
- - gemfiles/sidekiq_2.16.gemfile
13
- - gemfiles/sidekiq_2.17.gemfile
14
- - gemfiles/sidekiq_3.0.gemfile
15
- - gemfiles/sidekiq_develop.gemfile
16
- branches:
17
- only:
18
- - master
19
- notifications:
20
- email:
21
- recipients:
22
- - mikael@zoolutions.se
23
- matrix:
24
- allow_failures:
25
- - rvm: rbx-19mode
data/Appraisals DELETED
@@ -1,20 +0,0 @@
1
- appraise "sidekiq-develop" do
2
- gem 'sidekiq', github: 'mperham/sidekiq'
3
- gem 'sidekiq', '3.0', :platform => :mri_19
4
- end
5
-
6
- appraise "sidekiq-2.17" do
7
- gem 'sidekiq', '2.17'
8
- end
9
-
10
- appraise "sidekiq-2.16" do
11
- gem "sidekiq", '2.16'
12
- end
13
-
14
- appraise "sidekiq-2.15" do
15
- gem "sidekiq", '2.15'
16
- end
17
-
18
- appraise "sidekiq-3.0" do
19
- gem "sidekiq", '3.0'
20
- end
data/Gemfile DELETED
@@ -1,5 +0,0 @@
1
- source 'http://rubygems.org'
2
- gemspec
3
-
4
- gem 'appraisal', '~> 1.0.0'
5
- gem 'pry', platform: :mri
data/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- Copyright (c) 2012 Mikael Henriksson
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env rake
2
- require 'rubygems'
3
- require 'bundler/setup'
4
- require 'bundler/gem_tasks'
5
- require 'rspec/core/rake_task'
6
- require 'rubocop/rake_task'
7
-
8
- RuboCop::RakeTask.new(:style)
9
- RSpec::Core::RakeTask.new(:spec)
10
-
11
- task default: [:spec, :style]
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "appraisal", "~> 1.0.0"
6
- gem "pry", :platform => :mri
7
- gem "sidekiq", "2.15"
8
-
9
- gemspec :path => "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "appraisal", "~> 1.0.0"
6
- gem "pry", :platform => :mri
7
- gem "sidekiq", "2.16"
8
-
9
- gemspec :path => "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "appraisal", "~> 1.0.0"
6
- gem "pry", :platform => :mri
7
- gem "sidekiq", "2.17"
8
-
9
- gemspec :path => "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "appraisal", "~> 1.0.0"
6
- gem "pry", :platform => :mri
7
- gem "sidekiq", "3.0"
8
-
9
- gemspec :path => "../"
@@ -1,9 +0,0 @@
1
- # This file was generated by Appraisal
2
-
3
- source "http://rubygems.org"
4
-
5
- gem "appraisal", "~> 1.0.0"
6
- gem "pry", :platform => :mri
7
- gem "sidekiq", "3.0", :platform => :mri_19
8
-
9
- gemspec :path => "../"
@@ -1,11 +0,0 @@
1
- module SidekiqUniqueJobs
2
- module Connectors
3
- class RedisPool
4
- def self.connection(redis_pool = nil, &block)
5
- return if redis_pool.nil?
6
- redis_pool.with(&block)
7
- true
8
- end
9
- end
10
- end
11
- end
@@ -1,9 +0,0 @@
1
- module SidekiqUniqueJobs
2
- module Connectors
3
- class SidekiqRedis
4
- def self.connection(_redis_pool = nil, &block)
5
- Sidekiq.redis(&block)
6
- end
7
- end
8
- end
9
- end
@@ -1,11 +0,0 @@
1
- module SidekiqUniqueJobs
2
- module Connectors
3
- class Testing
4
- def self.connection(_redis_pool = nil)
5
- return unless SidekiqUniqueJobs.config.testing_enabled?
6
- yield SidekiqUniqueJobs.redis_mock
7
- true
8
- end
9
- end
10
- end
11
- end
@@ -1,16 +0,0 @@
1
- require 'sidekiq_unique_jobs/connectors/testing'
2
- require 'sidekiq_unique_jobs/connectors/redis_pool'
3
- require 'sidekiq_unique_jobs/connectors/sidekiq_redis'
4
-
5
- module SidekiqUniqueJobs
6
- module Connectors
7
- CONNECTOR_TYPES = [Testing, RedisPool, SidekiqRedis]
8
-
9
- def self.connection(redis_pool = nil, &block)
10
- CONNECTOR_TYPES.each do |connector|
11
- had_connection = connector.connection(redis_pool, &block)
12
- return if had_connection
13
- end
14
- end
15
- end
16
- end
@@ -1,25 +0,0 @@
1
- require 'sidekiq_unique_jobs/middleware/server/unique_jobs'
2
-
3
- module SidekiqUniqueJobs
4
- module Middleware
5
- module Client
6
- module Strategies
7
- class TestingInline < Unique
8
- def self.elegible?
9
- SidekiqUniqueJobs.config.testing_enabled? && Sidekiq::Testing.inline?
10
- end
11
-
12
- def review
13
- _middleware.call(worker_class.new, item, queue, redis_pool) do
14
- super
15
- end
16
- end
17
-
18
- def _middleware
19
- SidekiqUniqueJobs::Middleware::Server::UniqueJobs.new
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end