que-unique 1.1.0 → 1.3.0
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 +4 -4
- data/lib/que/unique/transaction_class_methods.rb +2 -1
- data/lib/que/unique/version.rb +1 -1
- data/lib/que/unique.rb +10 -8
- metadata +45 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 190128804ed1f6eebb078c53eafad450dd4ac250e928035950cef22d19cd219b
|
4
|
+
data.tar.gz: 9ffcef6c846cd5805aca5abe1a2d569bfffdb7372e9e83670c39b0a5c851b9b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0fecc160423b939979d352b08dca730f0493a663c9815f1cdf776b37760e0345564a600c872dc084a37202b55c11dbd58a673e2f043b854db935986870d19af
|
7
|
+
data.tar.gz: 5da43b172697c587f6f2c66dbbb26c93887731b892a574dd30553d3b8cc91b47a452b07109fde044ab02db49b174f61422f4f5af3af1643669eccfec3789a36a
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "active_support"
|
3
4
|
require "active_record"
|
4
5
|
require_relative "constants"
|
5
6
|
|
@@ -10,7 +11,7 @@ module Que
|
|
10
11
|
module TransactionClassMethods
|
11
12
|
def transaction(...)
|
12
13
|
start_que_unique_handled_transaction
|
13
|
-
super
|
14
|
+
super
|
14
15
|
ensure
|
15
16
|
end_que_unique_handled_transaction
|
16
17
|
end
|
data/lib/que/unique/version.rb
CHANGED
data/lib/que/unique.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "active_support/concern"
|
4
4
|
require "que"
|
5
5
|
require_relative "unique/version"
|
6
6
|
require_relative "unique/constants"
|
@@ -14,7 +14,7 @@ module Que
|
|
14
14
|
|
15
15
|
included do
|
16
16
|
singleton_class.class_eval do
|
17
|
-
def enqueue_before_unique(*args)
|
17
|
+
def enqueue_before_unique(*args, **kwargs)
|
18
18
|
thread_local_hash = Thread.current[Que::Unique::THREAD_LOCAL_KEY]
|
19
19
|
unless thread_local_hash
|
20
20
|
raise "UniqueQueJob #{self} being scheduled outside a transaction"
|
@@ -22,15 +22,17 @@ module Que
|
|
22
22
|
|
23
23
|
# Once the args are canonicalised, we convert it to a JSON string to match against.
|
24
24
|
canonicalised_args = args.map { |arg| Que::Unique.canonicalise_que_unique_arg(arg) }
|
25
|
-
|
25
|
+
canonicalised_kwargs = Que::Unique.canonicalise_que_unique_arg(kwargs)
|
26
|
+
cache_key = { self => [canonicalised_args, canonicalised_kwargs] }.to_json
|
27
|
+
|
26
28
|
# If this is already known then don't enqueue it again. Otherwise, add it to the last
|
27
29
|
# element of the array.
|
28
|
-
if thread_local_hash.key?(
|
29
|
-
::Rails.logger.debug "Que::Unique - #{self} - Already scheduled: #{
|
30
|
+
if thread_local_hash.key?(cache_key)
|
31
|
+
::Rails.logger.debug "Que::Unique - #{self} - Already scheduled: #{cache_key}"
|
30
32
|
else
|
31
|
-
::Rails.logger.debug "Que::Unique - #{self} - Enqueuing #{
|
32
|
-
thread_local_hash[
|
33
|
-
enqueue_after_unique(*
|
33
|
+
::Rails.logger.debug "Que::Unique - #{self} - Enqueuing #{cache_key}"
|
34
|
+
thread_local_hash[cache_key] = true
|
35
|
+
enqueue_after_unique(*args, **kwargs)
|
34
36
|
end
|
35
37
|
end
|
36
38
|
|
metadata
CHANGED
@@ -1,55 +1,54 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: que-unique
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bamboo Engineering
|
8
|
-
autorequire:
|
9
8
|
bindir: exe
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
13
|
+
name: que
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
16
15
|
requirements:
|
17
|
-
- - "
|
16
|
+
- - ">="
|
18
17
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
18
|
+
version: '2.0'
|
20
19
|
- - "<"
|
21
20
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
21
|
+
version: 3.0.0
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
24
|
version_requirements: !ruby/object:Gem::Requirement
|
26
25
|
requirements:
|
27
|
-
- - "
|
26
|
+
- - ">="
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
28
|
+
version: '2.0'
|
30
29
|
- - "<"
|
31
30
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
31
|
+
version: 3.0.0
|
33
32
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
33
|
+
name: rails
|
35
34
|
requirement: !ruby/object:Gem::Requirement
|
36
35
|
requirements:
|
37
|
-
- - "
|
36
|
+
- - ">"
|
38
37
|
- !ruby/object:Gem::Version
|
39
|
-
version: '0
|
38
|
+
version: '6.0'
|
40
39
|
- - "<"
|
41
40
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
41
|
+
version: '9.0'
|
43
42
|
type: :runtime
|
44
43
|
prerelease: false
|
45
44
|
version_requirements: !ruby/object:Gem::Requirement
|
46
45
|
requirements:
|
47
|
-
- - "
|
46
|
+
- - ">"
|
48
47
|
- !ruby/object:Gem::Version
|
49
|
-
version: '0
|
48
|
+
version: '6.0'
|
50
49
|
- - "<"
|
51
50
|
- !ruby/object:Gem::Version
|
52
|
-
version:
|
51
|
+
version: '9.0'
|
53
52
|
- !ruby/object:Gem::Dependency
|
54
53
|
name: appraisal
|
55
54
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,6 +77,20 @@ dependencies:
|
|
78
77
|
- - ">="
|
79
78
|
- !ruby/object:Gem::Version
|
80
79
|
version: '0'
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: concurrent-ruby
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - '='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 1.3.4
|
87
|
+
type: :development
|
88
|
+
prerelease: false
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - '='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.3.4
|
81
94
|
- !ruby/object:Gem::Dependency
|
82
95
|
name: database_cleaner
|
83
96
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,6 +119,20 @@ dependencies:
|
|
106
119
|
- - ">="
|
107
120
|
- !ruby/object:Gem::Version
|
108
121
|
version: '0'
|
122
|
+
- !ruby/object:Gem::Dependency
|
123
|
+
name: mutex_m
|
124
|
+
requirement: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
type: :development
|
130
|
+
prerelease: false
|
131
|
+
version_requirements: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
109
136
|
- !ruby/object:Gem::Dependency
|
110
137
|
name: pg
|
111
138
|
requirement: !ruby/object:Gem::Requirement
|
@@ -218,7 +245,6 @@ dependencies:
|
|
218
245
|
- - ">="
|
219
246
|
- !ruby/object:Gem::Version
|
220
247
|
version: '0'
|
221
|
-
description:
|
222
248
|
email:
|
223
249
|
- dev@bambooloans.com
|
224
250
|
executables: []
|
@@ -237,7 +263,6 @@ metadata:
|
|
237
263
|
source_code_uri: https://github.com/bambooengineering/que-unique
|
238
264
|
changelog_uri: https://github.com/bambooengineering/que-unique/CHANGELOG.md
|
239
265
|
rubygems_mfa_required: 'true'
|
240
|
-
post_install_message:
|
241
266
|
rdoc_options: []
|
242
267
|
require_paths:
|
243
268
|
- lib
|
@@ -252,8 +277,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
252
277
|
- !ruby/object:Gem::Version
|
253
278
|
version: '0'
|
254
279
|
requirements: []
|
255
|
-
rubygems_version: 3.
|
256
|
-
signing_key:
|
280
|
+
rubygems_version: 3.6.7
|
257
281
|
specification_version: 4
|
258
282
|
summary: A gem that removes duplicates when multiple copies of a que job are enqueued.
|
259
283
|
test_files: []
|