sidekiq-unique-jobs 6.0.7 → 7.1.33
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1880 -156
- data/README.md +818 -238
- data/bin/uniquejobs +2 -2
- data/lib/sidekiq-unique-jobs.rb +1 -1
- data/lib/sidekiq_unique_jobs/batch_delete.rb +124 -0
- data/lib/sidekiq_unique_jobs/changelog.rb +78 -0
- data/lib/sidekiq_unique_jobs/cli.rb +68 -25
- data/lib/sidekiq_unique_jobs/config.rb +319 -0
- data/lib/sidekiq_unique_jobs/connection.rb +6 -5
- data/lib/sidekiq_unique_jobs/constants.rb +50 -20
- data/lib/sidekiq_unique_jobs/core_ext.rb +80 -0
- data/lib/sidekiq_unique_jobs/deprecation.rb +65 -0
- data/lib/sidekiq_unique_jobs/digests.rb +70 -87
- data/lib/sidekiq_unique_jobs/exceptions.rb +88 -12
- data/lib/sidekiq_unique_jobs/expiring_digests.rb +14 -0
- data/lib/sidekiq_unique_jobs/job.rb +47 -13
- data/lib/sidekiq_unique_jobs/json.rb +47 -0
- data/lib/sidekiq_unique_jobs/key.rb +98 -0
- data/lib/sidekiq_unique_jobs/lock/base_lock.rb +111 -82
- data/lib/sidekiq_unique_jobs/lock/client_validator.rb +28 -0
- data/lib/sidekiq_unique_jobs/lock/server_validator.rb +27 -0
- data/lib/sidekiq_unique_jobs/lock/until_and_while_executing.rb +45 -5
- data/lib/sidekiq_unique_jobs/lock/until_executed.rb +30 -4
- data/lib/sidekiq_unique_jobs/lock/until_executing.rb +26 -2
- data/lib/sidekiq_unique_jobs/lock/until_expired.rb +27 -15
- data/lib/sidekiq_unique_jobs/lock/validator.rb +96 -0
- data/lib/sidekiq_unique_jobs/lock/while_executing.rb +26 -7
- data/lib/sidekiq_unique_jobs/lock/while_executing_reject.rb +3 -11
- data/lib/sidekiq_unique_jobs/lock.rb +342 -0
- data/lib/sidekiq_unique_jobs/lock_args.rb +127 -0
- data/lib/sidekiq_unique_jobs/lock_config.rb +126 -0
- data/lib/sidekiq_unique_jobs/lock_digest.rb +79 -0
- data/lib/sidekiq_unique_jobs/lock_info.rb +68 -0
- data/lib/sidekiq_unique_jobs/lock_timeout.rb +62 -0
- data/lib/sidekiq_unique_jobs/lock_ttl.rb +77 -0
- data/lib/sidekiq_unique_jobs/lock_type.rb +37 -0
- data/lib/sidekiq_unique_jobs/locksmith.rb +324 -95
- data/lib/sidekiq_unique_jobs/logging/middleware_context.rb +44 -0
- data/lib/sidekiq_unique_jobs/logging.rb +208 -30
- data/lib/sidekiq_unique_jobs/lua/delete.lua +51 -0
- data/lib/sidekiq_unique_jobs/lua/delete_by_digest.lua +42 -0
- data/lib/sidekiq_unique_jobs/lua/delete_job_by_digest.lua +38 -0
- data/lib/sidekiq_unique_jobs/lua/find_digest_in_queues.lua +26 -0
- data/lib/sidekiq_unique_jobs/lua/lock.lua +99 -0
- data/lib/sidekiq_unique_jobs/lua/lock_until_expired.lua +92 -0
- data/lib/sidekiq_unique_jobs/lua/locked.lua +35 -0
- data/lib/sidekiq_unique_jobs/lua/queue.lua +87 -0
- data/lib/sidekiq_unique_jobs/lua/reap_orphans.lua +122 -0
- data/lib/sidekiq_unique_jobs/lua/shared/_common.lua +40 -0
- data/lib/sidekiq_unique_jobs/lua/shared/_current_time.lua +8 -0
- data/lib/sidekiq_unique_jobs/lua/shared/_delete_from_queue.lua +22 -0
- data/lib/sidekiq_unique_jobs/lua/shared/_delete_from_sorted_set.lua +18 -0
- data/lib/sidekiq_unique_jobs/lua/shared/_find_digest_in_process_set.lua +53 -0
- data/lib/sidekiq_unique_jobs/lua/shared/_find_digest_in_queues.lua +43 -0
- data/lib/sidekiq_unique_jobs/lua/shared/_find_digest_in_sorted_set.lua +24 -0
- data/lib/sidekiq_unique_jobs/lua/shared/_hgetall.lua +13 -0
- data/lib/sidekiq_unique_jobs/lua/shared/_upgrades.lua +3 -0
- data/lib/sidekiq_unique_jobs/lua/unlock.lua +107 -0
- data/lib/sidekiq_unique_jobs/lua/update_version.lua +40 -0
- data/lib/sidekiq_unique_jobs/lua/upgrade.lua +68 -0
- data/lib/sidekiq_unique_jobs/middleware/client.rb +42 -0
- data/lib/sidekiq_unique_jobs/middleware/server.rb +31 -0
- data/lib/sidekiq_unique_jobs/middleware.rb +33 -30
- data/lib/sidekiq_unique_jobs/normalizer.rb +4 -4
- data/lib/sidekiq_unique_jobs/on_conflict/log.rb +9 -5
- data/lib/sidekiq_unique_jobs/on_conflict/null_strategy.rb +1 -1
- data/lib/sidekiq_unique_jobs/on_conflict/raise.rb +2 -2
- data/lib/sidekiq_unique_jobs/on_conflict/reject.rb +63 -17
- data/lib/sidekiq_unique_jobs/on_conflict/replace.rb +54 -14
- data/lib/sidekiq_unique_jobs/on_conflict/reschedule.rb +16 -5
- data/lib/sidekiq_unique_jobs/on_conflict/strategy.rb +26 -7
- data/lib/sidekiq_unique_jobs/on_conflict.rb +34 -16
- data/lib/sidekiq_unique_jobs/options_with_fallback.rb +39 -36
- data/lib/sidekiq_unique_jobs/orphans/lua_reaper.rb +29 -0
- data/lib/sidekiq_unique_jobs/orphans/manager.rb +241 -0
- data/lib/sidekiq_unique_jobs/orphans/null_reaper.rb +24 -0
- data/lib/sidekiq_unique_jobs/orphans/observer.rb +42 -0
- data/lib/sidekiq_unique_jobs/orphans/reaper.rb +114 -0
- data/lib/sidekiq_unique_jobs/orphans/reaper_resurrector.rb +170 -0
- data/lib/sidekiq_unique_jobs/orphans/ruby_reaper.rb +298 -0
- data/lib/sidekiq_unique_jobs/redis/entity.rb +112 -0
- data/lib/sidekiq_unique_jobs/redis/hash.rb +56 -0
- data/lib/sidekiq_unique_jobs/redis/list.rb +32 -0
- data/lib/sidekiq_unique_jobs/redis/set.rb +32 -0
- data/lib/sidekiq_unique_jobs/redis/sorted_set.rb +86 -0
- data/lib/sidekiq_unique_jobs/redis/string.rb +51 -0
- data/lib/sidekiq_unique_jobs/redis.rb +11 -0
- data/lib/sidekiq_unique_jobs/reflectable.rb +26 -0
- data/lib/sidekiq_unique_jobs/reflections.rb +79 -0
- data/lib/sidekiq_unique_jobs/rspec/matchers/have_valid_sidekiq_options.rb +51 -0
- data/lib/sidekiq_unique_jobs/rspec/matchers.rb +26 -0
- data/lib/sidekiq_unique_jobs/script/caller.rb +127 -0
- data/lib/sidekiq_unique_jobs/script.rb +15 -0
- data/lib/sidekiq_unique_jobs/server.rb +61 -0
- data/lib/sidekiq_unique_jobs/sidekiq_unique_ext.rb +115 -66
- data/lib/sidekiq_unique_jobs/sidekiq_unique_jobs.rb +304 -0
- data/lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb +51 -29
- data/lib/sidekiq_unique_jobs/testing.rb +104 -31
- data/lib/sidekiq_unique_jobs/timer_task.rb +299 -0
- data/lib/sidekiq_unique_jobs/timing.rb +58 -0
- data/lib/sidekiq_unique_jobs/unlockable.rb +20 -4
- data/lib/sidekiq_unique_jobs/update_version.rb +25 -0
- data/lib/sidekiq_unique_jobs/upgrade_locks.rb +155 -0
- data/lib/sidekiq_unique_jobs/version.rb +3 -1
- data/lib/sidekiq_unique_jobs/version_check.rb +114 -0
- data/lib/sidekiq_unique_jobs/web/helpers.rb +140 -15
- data/lib/sidekiq_unique_jobs/web/views/_paging.erb +4 -4
- data/lib/sidekiq_unique_jobs/web/views/changelogs.erb +54 -0
- data/lib/sidekiq_unique_jobs/web/views/lock.erb +110 -0
- data/lib/sidekiq_unique_jobs/web/views/locks.erb +54 -0
- data/lib/sidekiq_unique_jobs/web.rb +86 -29
- data/lib/sidekiq_unique_jobs.rb +78 -105
- data/lib/tasks/changelog.rake +23 -0
- metadata +154 -218
- data/.codeclimate.yml +0 -35
- data/.csslintrc +0 -2
- data/.dockerignore +0 -4
- data/.editorconfig +0 -14
- data/.eslintignore +0 -1
- data/.eslintrc +0 -213
- data/.fasterer.yml +0 -23
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -31
- data/.github/ISSUE_TEMPLATE/feature_request.md +0 -17
- data/.gitignore +0 -28
- data/.reek.yml +0 -87
- data/.rspec +0 -2
- data/.rubocop.yml +0 -127
- data/.simplecov +0 -20
- data/.travis.yml +0 -47
- data/.yardopts +0 -7
- data/Appraisals +0 -29
- data/CODE_OF_CONDUCT.md +0 -74
- data/Gemfile +0 -24
- data/Guardfile +0 -55
- data/Rakefile +0 -12
- data/_config.yml +0 -1
- data/assets/unique_digests_1.png +0 -0
- data/assets/unique_digests_2.png +0 -0
- data/bin/bench +0 -20
- data/examples/another_unique_job.rb +0 -15
- data/examples/custom_queue_job.rb +0 -12
- data/examples/custom_queue_job_with_filter_method.rb +0 -13
- data/examples/custom_queue_job_with_filter_proc.rb +0 -16
- data/examples/expiring_job.rb +0 -12
- data/examples/inline_worker.rb +0 -12
- data/examples/just_a_worker.rb +0 -13
- data/examples/long_running_job.rb +0 -14
- data/examples/main_job.rb +0 -14
- data/examples/my_job.rb +0 -12
- data/examples/my_unique_job.rb +0 -15
- data/examples/my_unique_job_with_filter_method.rb +0 -21
- data/examples/my_unique_job_with_filter_proc.rb +0 -19
- data/examples/notify_worker.rb +0 -14
- data/examples/plain_class.rb +0 -13
- data/examples/simple_worker.rb +0 -15
- data/examples/spawn_simple_worker.rb +0 -12
- data/examples/test_class.rb +0 -9
- data/examples/unique_across_workers_job.rb +0 -20
- data/examples/unique_job_on_conflict_raise.rb +0 -14
- data/examples/unique_job_on_conflict_reject.rb +0 -14
- data/examples/unique_job_on_conflict_reschedule.rb +0 -14
- data/examples/unique_job_with_conditional_parameter.rb +0 -18
- data/examples/unique_job_with_filter_method.rb +0 -21
- data/examples/unique_job_with_nil_unique_args.rb +0 -20
- data/examples/unique_job_with_no_unique_args_method.rb +0 -16
- data/examples/unique_job_withthout_unique_args_parameter.rb +0 -18
- data/examples/unique_on_all_queues_job.rb +0 -16
- data/examples/until_and_while_executing_job.rb +0 -17
- data/examples/until_executed_2_job.rb +0 -24
- data/examples/until_executed_job.rb +0 -25
- data/examples/until_executing_job.rb +0 -11
- data/examples/until_expired_job.rb +0 -12
- data/examples/until_global_expired_job.rb +0 -12
- data/examples/while_executing_job.rb +0 -15
- data/examples/while_executing_reject_job.rb +0 -14
- data/examples/without_argument_job.rb +0 -13
- data/lib/sidekiq_unique_jobs/client/middleware.rb +0 -56
- data/lib/sidekiq_unique_jobs/scripts.rb +0 -89
- data/lib/sidekiq_unique_jobs/server/middleware.rb +0 -40
- data/lib/sidekiq_unique_jobs/timeout/calculator.rb +0 -63
- data/lib/sidekiq_unique_jobs/timeout.rb +0 -8
- data/lib/sidekiq_unique_jobs/unique_args.rb +0 -149
- data/lib/sidekiq_unique_jobs/util.rb +0 -103
- data/lib/sidekiq_unique_jobs/web/views/unique_digest.erb +0 -28
- data/lib/sidekiq_unique_jobs/web/views/unique_digests.erb +0 -42
- data/redis/acquire_lock.lua +0 -21
- data/redis/delete.lua +0 -14
- data/redis/delete_by_digest.lua +0 -24
- data/redis/delete_job_by_digest.lua +0 -60
- data/redis/lock.lua +0 -58
- data/redis/release_stale_locks.lua +0 -90
- data/redis/unlock.lua +0 -32
- data/sidekiq-unique-jobs.gemspec +0 -42
data/.eslintrc
DELETED
@@ -1,213 +0,0 @@
|
|
1
|
-
ecmaFeatures:
|
2
|
-
modules: true
|
3
|
-
jsx: true
|
4
|
-
|
5
|
-
env:
|
6
|
-
amd: true
|
7
|
-
browser: true
|
8
|
-
es6: true
|
9
|
-
jquery: true
|
10
|
-
node: true
|
11
|
-
|
12
|
-
# http://eslint.org/docs/rules/
|
13
|
-
rules:
|
14
|
-
# Possible Errors
|
15
|
-
comma-dangle: [2, never]
|
16
|
-
no-cond-assign: 2
|
17
|
-
no-console: 0
|
18
|
-
no-constant-condition: 2
|
19
|
-
no-control-regex: 2
|
20
|
-
no-debugger: 2
|
21
|
-
no-dupe-args: 2
|
22
|
-
no-dupe-keys: 2
|
23
|
-
no-duplicate-case: 2
|
24
|
-
no-empty: 2
|
25
|
-
no-empty-character-class: 2
|
26
|
-
no-ex-assign: 2
|
27
|
-
no-extra-boolean-cast: 2
|
28
|
-
no-extra-parens: 0
|
29
|
-
no-extra-semi: 2
|
30
|
-
no-func-assign: 2
|
31
|
-
no-inner-declarations: [2, functions]
|
32
|
-
no-invalid-regexp: 2
|
33
|
-
no-irregular-whitespace: 2
|
34
|
-
no-negated-in-lhs: 2
|
35
|
-
no-obj-calls: 2
|
36
|
-
no-regex-spaces: 2
|
37
|
-
no-sparse-arrays: 2
|
38
|
-
no-unexpected-multiline: 2
|
39
|
-
no-unreachable: 2
|
40
|
-
use-isnan: 2
|
41
|
-
valid-jsdoc: 0
|
42
|
-
valid-typeof: 2
|
43
|
-
|
44
|
-
# Best Practices
|
45
|
-
accessor-pairs: 2
|
46
|
-
block-scoped-var: 0
|
47
|
-
complexity: [2, 6]
|
48
|
-
consistent-return: 0
|
49
|
-
curly: 0
|
50
|
-
default-case: 0
|
51
|
-
dot-location: 0
|
52
|
-
dot-notation: 0
|
53
|
-
eqeqeq: 2
|
54
|
-
guard-for-in: 2
|
55
|
-
no-alert: 2
|
56
|
-
no-caller: 2
|
57
|
-
no-case-declarations: 2
|
58
|
-
no-div-regex: 2
|
59
|
-
no-else-return: 0
|
60
|
-
no-empty-label: 2
|
61
|
-
no-empty-pattern: 2
|
62
|
-
no-eq-null: 2
|
63
|
-
no-eval: 2
|
64
|
-
no-extend-native: 2
|
65
|
-
no-extra-bind: 2
|
66
|
-
no-fallthrough: 2
|
67
|
-
no-floating-decimal: 0
|
68
|
-
no-implicit-coercion: 0
|
69
|
-
no-implied-eval: 2
|
70
|
-
no-invalid-this: 0
|
71
|
-
no-iterator: 2
|
72
|
-
no-labels: 0
|
73
|
-
no-lone-blocks: 2
|
74
|
-
no-loop-func: 2
|
75
|
-
no-magic-number: 0
|
76
|
-
no-multi-spaces: 0
|
77
|
-
no-multi-str: 0
|
78
|
-
no-native-reassign: 2
|
79
|
-
no-new-func: 2
|
80
|
-
no-new-wrappers: 2
|
81
|
-
no-new: 2
|
82
|
-
no-octal-escape: 2
|
83
|
-
no-octal: 2
|
84
|
-
no-proto: 2
|
85
|
-
no-redeclare: 2
|
86
|
-
no-return-assign: 2
|
87
|
-
no-script-url: 2
|
88
|
-
no-self-compare: 2
|
89
|
-
no-sequences: 0
|
90
|
-
no-throw-literal: 0
|
91
|
-
no-unused-expressions: 2
|
92
|
-
no-useless-call: 2
|
93
|
-
no-useless-concat: 2
|
94
|
-
no-void: 2
|
95
|
-
no-warning-comments: 0
|
96
|
-
no-with: 2
|
97
|
-
radix: 2
|
98
|
-
vars-on-top: 0
|
99
|
-
wrap-iife: 2
|
100
|
-
yoda: 0
|
101
|
-
|
102
|
-
# Strict
|
103
|
-
strict: 0
|
104
|
-
|
105
|
-
# Variables
|
106
|
-
init-declarations: 0
|
107
|
-
no-catch-shadow: 2
|
108
|
-
no-delete-var: 2
|
109
|
-
no-label-var: 2
|
110
|
-
no-shadow-restricted-names: 2
|
111
|
-
no-shadow: 0
|
112
|
-
no-undef-init: 2
|
113
|
-
no-undef: 0
|
114
|
-
no-undefined: 0
|
115
|
-
no-unused-vars: 0
|
116
|
-
no-use-before-define: 0
|
117
|
-
|
118
|
-
# Node.js and CommonJS
|
119
|
-
callback-return: 2
|
120
|
-
global-require: 2
|
121
|
-
handle-callback-err: 2
|
122
|
-
no-mixed-requires: 0
|
123
|
-
no-new-require: 0
|
124
|
-
no-path-concat: 2
|
125
|
-
no-process-exit: 2
|
126
|
-
no-restricted-modules: 0
|
127
|
-
no-sync: 0
|
128
|
-
|
129
|
-
# Stylistic Issues
|
130
|
-
array-bracket-spacing: 0
|
131
|
-
block-spacing: 0
|
132
|
-
brace-style: 0
|
133
|
-
camelcase: 0
|
134
|
-
comma-spacing: 0
|
135
|
-
comma-style: 0
|
136
|
-
computed-property-spacing: 0
|
137
|
-
consistent-this: 0
|
138
|
-
eol-last: 0
|
139
|
-
func-names: 0
|
140
|
-
func-style: 0
|
141
|
-
id-length: 0
|
142
|
-
id-match: 0
|
143
|
-
indent: 0
|
144
|
-
jsx-quotes: 0
|
145
|
-
key-spacing: 0
|
146
|
-
linebreak-style: 0
|
147
|
-
lines-around-comment: 0
|
148
|
-
max-depth: 0
|
149
|
-
max-len: 0
|
150
|
-
max-nested-callbacks: 0
|
151
|
-
max-params: 0
|
152
|
-
max-statements: [2, 30]
|
153
|
-
new-cap: 0
|
154
|
-
new-parens: 0
|
155
|
-
newline-after-var: 0
|
156
|
-
no-array-constructor: 0
|
157
|
-
no-bitwise: 0
|
158
|
-
no-continue: 0
|
159
|
-
no-inline-comments: 0
|
160
|
-
no-lonely-if: 0
|
161
|
-
no-mixed-spaces-and-tabs: 0
|
162
|
-
no-multiple-empty-lines: 0
|
163
|
-
no-negated-condition: 0
|
164
|
-
no-nested-ternary: 0
|
165
|
-
no-new-object: 0
|
166
|
-
no-plusplus: 0
|
167
|
-
no-restricted-syntax: 0
|
168
|
-
no-spaced-func: 0
|
169
|
-
no-ternary: 0
|
170
|
-
no-trailing-spaces: 0
|
171
|
-
no-underscore-dangle: 0
|
172
|
-
no-unneeded-ternary: 0
|
173
|
-
object-curly-spacing: 0
|
174
|
-
one-var: 0
|
175
|
-
operator-assignment: 0
|
176
|
-
operator-linebreak: 0
|
177
|
-
padded-blocks: 0
|
178
|
-
quote-props: 0
|
179
|
-
quotes: 0
|
180
|
-
require-jsdoc: 0
|
181
|
-
semi-spacing: 0
|
182
|
-
semi: 0
|
183
|
-
sort-vars: 0
|
184
|
-
space-after-keywords: 0
|
185
|
-
space-before-blocks: 0
|
186
|
-
space-before-function-paren: 0
|
187
|
-
space-before-keywords: 0
|
188
|
-
space-in-parens: 0
|
189
|
-
space-infix-ops: 0
|
190
|
-
space-return-throw-case: 0
|
191
|
-
space-unary-ops: 0
|
192
|
-
spaced-comment: 0
|
193
|
-
wrap-regex: 0
|
194
|
-
|
195
|
-
# ECMAScript 6
|
196
|
-
arrow-body-style: 0
|
197
|
-
arrow-parens: 0
|
198
|
-
arrow-spacing: 0
|
199
|
-
constructor-super: 0
|
200
|
-
generator-star-spacing: 0
|
201
|
-
no-arrow-condition: 0
|
202
|
-
no-class-assign: 0
|
203
|
-
no-const-assign: 0
|
204
|
-
no-dupe-class-members: 0
|
205
|
-
no-this-before-super: 0
|
206
|
-
no-var: 0
|
207
|
-
object-shorthand: 0
|
208
|
-
prefer-arrow-callback: 0
|
209
|
-
prefer-const: 0
|
210
|
-
prefer-reflect: 0
|
211
|
-
prefer-spread: 0
|
212
|
-
prefer-template: 0
|
213
|
-
require-yield: 0
|
data/.fasterer.yml
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
speedups:
|
2
|
-
parallel_assignment: false
|
3
|
-
rescue_vs_respond_to: true
|
4
|
-
module_eval: true
|
5
|
-
shuffle_first_vs_sample: true
|
6
|
-
for_loop_vs_each: true
|
7
|
-
each_with_index_vs_while: false
|
8
|
-
map_flatten_vs_flat_map: true
|
9
|
-
reverse_each_vs_reverse_each: true
|
10
|
-
select_first_vs_detect: true
|
11
|
-
sort_vs_sort_by: true
|
12
|
-
fetch_with_argument_vs_block: true
|
13
|
-
keys_each_vs_each_key: true
|
14
|
-
hash_merge_bang_vs_hash_brackets: true
|
15
|
-
block_vs_symbol_to_proc: true
|
16
|
-
proc_call_vs_yield: true
|
17
|
-
gsub_vs_tr: true
|
18
|
-
select_last_vs_reverse_detect: true
|
19
|
-
getter_vs_attr_reader: true
|
20
|
-
setter_vs_attr_writer: true
|
21
|
-
|
22
|
-
exclude_paths:
|
23
|
-
- 'spec/**/*.rb'
|
@@ -1,31 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: Bug report
|
3
|
-
about: Create a report to help us improve
|
4
|
-
|
5
|
-
---
|
6
|
-
|
7
|
-
**Describe the bug**
|
8
|
-
A clear and concise description of what the bug is.
|
9
|
-
|
10
|
-
**Expected behavior**
|
11
|
-
A clear and concise description of what you expected to happen.
|
12
|
-
|
13
|
-
**Current behavior**
|
14
|
-
What happens instead of the expected behavior?
|
15
|
-
|
16
|
-
**Worker class**
|
17
|
-
|
18
|
-
```ruby
|
19
|
-
class MyWorker
|
20
|
-
include Sidekiq::Worker
|
21
|
-
sidekiq_options lock: :until_executed, queue: :undefault
|
22
|
-
def perform(args); end
|
23
|
-
|
24
|
-
def self.unique_args(args)
|
25
|
-
# the way you consider unique arguments
|
26
|
-
end
|
27
|
-
end
|
28
|
-
```
|
29
|
-
|
30
|
-
**Additional context**
|
31
|
-
Add any other context about the problem here.
|
@@ -1,17 +0,0 @@
|
|
1
|
-
---
|
2
|
-
name: Feature request
|
3
|
-
about: Suggest an idea for this project
|
4
|
-
|
5
|
-
---
|
6
|
-
|
7
|
-
**Is your feature request related to a problem? Please describe.**
|
8
|
-
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
9
|
-
|
10
|
-
**Describe the solution you'd like**
|
11
|
-
A clear and concise description of what you want to happen.
|
12
|
-
|
13
|
-
**Describe alternatives you've considered**
|
14
|
-
A clear and concise description of any alternative solutions or features you've considered.
|
15
|
-
|
16
|
-
**Additional context**
|
17
|
-
Add any other context or screenshots about the feature request here.
|
data/.gitignore
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
|
2
|
-
*.gem
|
3
|
-
|
4
|
-
.DS_Store
|
5
|
-
|
6
|
-
Gemfile.lock
|
7
|
-
|
8
|
-
.ruby-version
|
9
|
-
.idea/
|
10
|
-
gemfiles/*.lock
|
11
|
-
*.sw?
|
12
|
-
coverage/
|
13
|
-
tmp/
|
14
|
-
rails_example/spec/examples.txt
|
15
|
-
|
16
|
-
*.sublime-*
|
17
|
-
|
18
|
-
/sidekiq/
|
19
|
-
|
20
|
-
.rspec_status
|
21
|
-
|
22
|
-
/gemfiles/.bundle/
|
23
|
-
|
24
|
-
/.byebug_history
|
25
|
-
|
26
|
-
/.yardoc/
|
27
|
-
|
28
|
-
/spec/examples.txt
|
data/.reek.yml
DELETED
@@ -1,87 +0,0 @@
|
|
1
|
-
---
|
2
|
-
exclude_paths:
|
3
|
-
- rails_example
|
4
|
-
- redis
|
5
|
-
- spec
|
6
|
-
- tmp
|
7
|
-
- gemfiles
|
8
|
-
- examples
|
9
|
-
detectors:
|
10
|
-
DuplicateMethodCall:
|
11
|
-
exclude:
|
12
|
-
- Sidekiq#self.use_options
|
13
|
-
- SidekiqUniqueJobs::Web#self.registered
|
14
|
-
IrresponsibleModule:
|
15
|
-
enabled: false
|
16
|
-
LongParameterList:
|
17
|
-
enabled: true
|
18
|
-
exclude:
|
19
|
-
- initialize
|
20
|
-
- Hash#slice
|
21
|
-
- SidekiqUniqueJobs::Locksmith#create_lock
|
22
|
-
- SidekiqUniqueJobs::Locksmith#expire_when_necessary
|
23
|
-
- SidekiqUniqueJobs::Client::Middleware#call
|
24
|
-
TooManyStatements:
|
25
|
-
exclude:
|
26
|
-
- initialize
|
27
|
-
- Hash#slice
|
28
|
-
- SidekiqUniqueJobs::Locksmith#create_lock
|
29
|
-
- SidekiqUniqueJobs::Locksmith#expire_when_necessary
|
30
|
-
- SidekiqUniqueJobs::Middleware#configure_server_middleware
|
31
|
-
- SidekiqUniqueJobs::Server::Middleware#call
|
32
|
-
- SidekiqUniqueJobs::UniqueArgs#filtered_args
|
33
|
-
- SidekiqUniqueJobs::Util#del
|
34
|
-
- SidekiqUniqueJobs::Digests#batch_delete
|
35
|
-
- SidekiqUniqueJobs::Digests#delete_by_pattern
|
36
|
-
- SidekiqUniqueJobs::Web#self.registered
|
37
|
-
UncommunicativeVariableName:
|
38
|
-
exclude:
|
39
|
-
- Hash#slice
|
40
|
-
BooleanParameter:
|
41
|
-
exclude:
|
42
|
-
- SidekiqUniqueJobs::Cli#self.banner
|
43
|
-
UtilityFunction:
|
44
|
-
enabled: false
|
45
|
-
TooManyConstants:
|
46
|
-
exclude:
|
47
|
-
- SidekiqUniqueJobs
|
48
|
-
ManualDispatch:
|
49
|
-
enabled: true
|
50
|
-
exclude:
|
51
|
-
- Hash#slice
|
52
|
-
- Hash#slice!
|
53
|
-
- SidekiqUniqueJobs::OnConflict::Reject#deadset_kill?
|
54
|
-
- SidekiqUniqueJobs::SidekiqWorkerMethods#worker_method_defined?
|
55
|
-
- SidekiqUniqueJobs::Web::Helpers#redirect_to
|
56
|
-
MissingSafeMethod:
|
57
|
-
exclude:
|
58
|
-
- Array
|
59
|
-
NilCheck:
|
60
|
-
enabled: false
|
61
|
-
DataClump:
|
62
|
-
enabled: true
|
63
|
-
exclude:
|
64
|
-
- SidekiqUniqueJobs::Util
|
65
|
-
FeatureEnvy:
|
66
|
-
exclude:
|
67
|
-
- SidekiqUniqueJobs::Digests#batch_delete
|
68
|
-
- SidekiqUniqueJobs::Digests#page
|
69
|
-
- SidekiqUniqueJobs::Logging#debug_item
|
70
|
-
- SidekiqUniqueJobs::OnConflict::Reject#push_to_deadset
|
71
|
-
- SidekiqUniqueJobs::Util#batch_delete
|
72
|
-
- SidekiqUniqueJobs::Web::Helpers#cparams
|
73
|
-
NestedIterators:
|
74
|
-
exclude:
|
75
|
-
- SidekiqUniqueJobs::Digests#batch_delete
|
76
|
-
- SidekiqUniqueJobs::Locksmith#create_lock
|
77
|
-
- SidekiqUniqueJobs::Middleware#configure_client_middleware
|
78
|
-
- SidekiqUniqueJobs::Middleware#configure_server_middleware
|
79
|
-
- SidekiqUniqueJobs::Util#batch_delete
|
80
|
-
- SidekiqUniqueJobs::Util#keys_with_ttl
|
81
|
-
TooManyInstanceVariables:
|
82
|
-
exclude:
|
83
|
-
- SidekiqUniqueJobs::Locksmith
|
84
|
-
TooManyMethods:
|
85
|
-
exclude:
|
86
|
-
- SidekiqUniqueJobs::Locksmith
|
87
|
-
- SidekiqUniqueJobs::Lock::BaseLock
|
data/.rspec
DELETED
data/.rubocop.yml
DELETED
@@ -1,127 +0,0 @@
|
|
1
|
-
require: rubocop-rspec
|
2
|
-
AllCops:
|
3
|
-
Include:
|
4
|
-
- '**/Rakefile'
|
5
|
-
- 'lib/**/*.rb'
|
6
|
-
- 'bin/**/*.rb'
|
7
|
-
- 'spec/**/*.rb'
|
8
|
-
- 'examples/**/*.rb'
|
9
|
-
Exclude:
|
10
|
-
- 'Gemfile.lock'
|
11
|
-
- 'gemfiles/**/*'
|
12
|
-
TargetRubyVersion: 2.3
|
13
|
-
|
14
|
-
Lint/HandleExceptions:
|
15
|
-
Enabled: true
|
16
|
-
|
17
|
-
Lint/UselessAssignment:
|
18
|
-
Enabled: true
|
19
|
-
|
20
|
-
Metrics/AbcSize:
|
21
|
-
Max: 38
|
22
|
-
|
23
|
-
Metrics/CyclomaticComplexity:
|
24
|
-
Max: 7
|
25
|
-
|
26
|
-
Metrics/LineLength:
|
27
|
-
Max: 120
|
28
|
-
|
29
|
-
Metrics/MethodLength:
|
30
|
-
Max: 13
|
31
|
-
|
32
|
-
Metrics/BlockLength:
|
33
|
-
Enabled: true
|
34
|
-
Exclude:
|
35
|
-
- '**/spec/**/*.rb'
|
36
|
-
|
37
|
-
Metrics/PerceivedComplexity:
|
38
|
-
Max: 8
|
39
|
-
|
40
|
-
Naming/AccessorMethodName:
|
41
|
-
Enabled: true
|
42
|
-
|
43
|
-
Naming/ConstantName:
|
44
|
-
Enabled: true
|
45
|
-
|
46
|
-
Naming/FileName:
|
47
|
-
Enabled: true
|
48
|
-
Exclude:
|
49
|
-
- 'lib/sidekiq-unique-jobs.rb'
|
50
|
-
- '**/Gemfile'
|
51
|
-
- '**/Appraisals'
|
52
|
-
- '**/*.gemspec'
|
53
|
-
|
54
|
-
Naming/UncommunicativeMethodParamName:
|
55
|
-
AllowedNames:
|
56
|
-
- ex
|
57
|
-
|
58
|
-
RSpec/DescribeClass:
|
59
|
-
Enabled: false
|
60
|
-
|
61
|
-
RSpec/ExampleLength:
|
62
|
-
Enabled: false
|
63
|
-
|
64
|
-
RSpec/ExpectActual:
|
65
|
-
Enabled: false
|
66
|
-
|
67
|
-
RSpec/ExpectChange:
|
68
|
-
Enabled: false
|
69
|
-
|
70
|
-
RSpec/ExpectInHook:
|
71
|
-
Enabled: false
|
72
|
-
|
73
|
-
RSpec/MessageSpies:
|
74
|
-
Enabled: false
|
75
|
-
|
76
|
-
RSpec/MultipleExpectations:
|
77
|
-
Enabled: false
|
78
|
-
|
79
|
-
RSpec/NestedGroups:
|
80
|
-
Max: 4
|
81
|
-
Enabled: true
|
82
|
-
|
83
|
-
RSpec/RepeatedExample:
|
84
|
-
Enabled: false
|
85
|
-
|
86
|
-
Style/FrozenStringLiteralComment:
|
87
|
-
Enabled: true
|
88
|
-
|
89
|
-
Style/Documentation:
|
90
|
-
Enabled: false
|
91
|
-
|
92
|
-
Style/SignalException:
|
93
|
-
EnforcedStyle: only_fail
|
94
|
-
Enabled: false
|
95
|
-
|
96
|
-
Style/GlobalVars:
|
97
|
-
Enabled: true
|
98
|
-
|
99
|
-
Style/StringLiterals:
|
100
|
-
Enabled: true
|
101
|
-
EnforcedStyle: single_quotes
|
102
|
-
ConsistentQuotesInMultiline: true
|
103
|
-
|
104
|
-
Style/StringLiteralsInInterpolation:
|
105
|
-
Enabled: true
|
106
|
-
EnforcedStyle: single_quotes
|
107
|
-
|
108
|
-
Style/SymbolArray:
|
109
|
-
Enabled: true
|
110
|
-
EnforcedStyle: brackets
|
111
|
-
|
112
|
-
Style/TernaryParentheses:
|
113
|
-
Enabled: true
|
114
|
-
EnforcedStyle: require_parentheses_when_complex
|
115
|
-
AllowSafeAssignment: true
|
116
|
-
|
117
|
-
Style/TrailingCommaInArguments:
|
118
|
-
Enabled: true
|
119
|
-
EnforcedStyleForMultiline: comma
|
120
|
-
|
121
|
-
Style/TrailingCommaInArrayLiteral:
|
122
|
-
Enabled: true
|
123
|
-
EnforcedStyleForMultiline: comma
|
124
|
-
|
125
|
-
Style/TrailingCommaInHashLiteral:
|
126
|
-
Enabled: true
|
127
|
-
EnforcedStyleForMultiline: comma
|
data/.simplecov
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'simplecov-json'
|
2
|
-
|
3
|
-
SimpleCov.command_name 'RSpec'
|
4
|
-
# SimpleCov.refuse_coverage_drop
|
5
|
-
SimpleCov.formatters = [
|
6
|
-
SimpleCov::Formatter::HTMLFormatter,
|
7
|
-
SimpleCov::Formatter::JSONFormatter,
|
8
|
-
]
|
9
|
-
|
10
|
-
SimpleCov.start do
|
11
|
-
add_filter '/spec/'
|
12
|
-
add_filter '/bin/'
|
13
|
-
add_filter '/gemfiles/'
|
14
|
-
add_filter '/examples/'
|
15
|
-
|
16
|
-
add_group 'Client', 'lib/sidekiq_unique_jobs/client'
|
17
|
-
add_group 'Locks', 'lib/sidekiq_unique_jobs/lock'
|
18
|
-
add_group 'Server', 'lib/sidekiq_unique_jobs/server'
|
19
|
-
add_group 'Timeout', 'lib/sidekiq_unique_jobs/timeout'
|
20
|
-
end
|
data/.travis.yml
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
env:
|
2
|
-
matrix:
|
3
|
-
- COV=false
|
4
|
-
global:
|
5
|
-
- CC_TEST_REPORTER_ID=88e524e8f638efe690def7a6e2c72b1a9db5cdfa74548921b734d609a5858ee5
|
6
|
-
- GIT_COMMITTED_AT=$(if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then git log -1 --pretty=format:%ct; else git log -1 --skip 1 --pretty=format:%ct; fi)
|
7
|
-
dist: trusty
|
8
|
-
sudo: required
|
9
|
-
language: ruby
|
10
|
-
cache: bundler
|
11
|
-
services:
|
12
|
-
- redis-server
|
13
|
-
|
14
|
-
before_install:
|
15
|
-
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
16
|
-
- chmod +x ./cc-test-reporter
|
17
|
-
before_script:
|
18
|
-
- ./cc-test-reporter before-build
|
19
|
-
script:
|
20
|
-
- if [[ "${COV}" = "true" ]]; then bundle exec rubocop -P; fi;
|
21
|
-
- bundle exec rspec
|
22
|
-
after_script:
|
23
|
-
- if [[ "${COV}" = "true" ]]; then ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT; fi;
|
24
|
-
rvm:
|
25
|
-
- 2.5.1
|
26
|
-
- 2.4.2
|
27
|
-
- 2.3.2
|
28
|
-
- jruby-9.2.0.0
|
29
|
-
matrix:
|
30
|
-
fast_finish: true
|
31
|
-
include:
|
32
|
-
- rvm: 2.5.1
|
33
|
-
gemfile: gemfiles/sidekiq_develop.gemfile
|
34
|
-
env: COV=true
|
35
|
-
gemfile:
|
36
|
-
- gemfiles/sidekiq_develop.gemfile
|
37
|
-
- gemfiles/sidekiq_4.0.gemfile
|
38
|
-
- gemfiles/sidekiq_4.1.gemfile
|
39
|
-
- gemfiles/sidekiq_4.2.gemfile
|
40
|
-
- gemfiles/sidekiq_5.0.gemfile
|
41
|
-
- gemfiles/sidekiq_5.1.gemfile
|
42
|
-
- gemfiles/sidekiq_5.2.gemfile
|
43
|
-
|
44
|
-
notifications:
|
45
|
-
email:
|
46
|
-
recipients:
|
47
|
-
- mikael@zoolutions.se
|
data/.yardopts
DELETED
data/Appraisals
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
appraise 'sidekiq-develop' do
|
4
|
-
gem 'sidekiq', git: 'https://github.com/mperham/sidekiq.git'
|
5
|
-
end
|
6
|
-
|
7
|
-
appraise 'sidekiq-4.0' do
|
8
|
-
gem 'sidekiq', '~> 4.0.0'
|
9
|
-
end
|
10
|
-
|
11
|
-
appraise 'sidekiq-4.1' do
|
12
|
-
gem 'sidekiq', '~> 4.1.0'
|
13
|
-
end
|
14
|
-
|
15
|
-
appraise 'sidekiq-4.2' do
|
16
|
-
gem 'sidekiq', '~> 4.2.0'
|
17
|
-
end
|
18
|
-
|
19
|
-
appraise 'sidekiq-5.0' do
|
20
|
-
gem 'sidekiq', '~> 5.0.0'
|
21
|
-
end
|
22
|
-
|
23
|
-
appraise 'sidekiq-5.1' do
|
24
|
-
gem 'sidekiq', '~> 5.1.0'
|
25
|
-
end
|
26
|
-
|
27
|
-
appraise 'sidekiq-5.2' do
|
28
|
-
gem 'sidekiq', '~> 5.2.0'
|
29
|
-
end
|