chewy_kiqqer 0.2.5 → 0.2.6
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/.gitignore +1 -0
- data/.travis.yml +2 -0
- data/lib/chewy_kiqqer/version.rb +1 -1
- data/lib/chewy_kiqqer/worker.rb +13 -2
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3a8ce886bcf74bd096fda20413f4e42bff0c1bf1
|
|
4
|
+
data.tar.gz: 198a41c1a79223f2afbefc20355124b780cff25a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: aef248caa4e278f58c8ffe6a65b77acf29c3e00891e3d5b69cd2708eaaa5212805c4cd3d3e89d741a50290b94b394cf62f2a1cbf5fb97a479e98f95d0ef5e3c0
|
|
7
|
+
data.tar.gz: ead7ce04022c41201b3d22590802116cf4b70c4badd42b3481c7ffa62b55263d156b125cd566181db9823b10b5a32f56c92dc7695bceab0f9d96705b5ae3a3c9
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/lib/chewy_kiqqer/version.rb
CHANGED
data/lib/chewy_kiqqer/worker.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'sidekiq'
|
|
2
|
+
require 'redis-namespace'
|
|
2
3
|
require 'redis-lock'
|
|
3
4
|
|
|
4
5
|
module ChewyKiqqer
|
|
@@ -6,7 +7,6 @@ module ChewyKiqqer
|
|
|
6
7
|
|
|
7
8
|
include Sidekiq::Worker
|
|
8
9
|
|
|
9
|
-
|
|
10
10
|
def perform(index_name, ids)
|
|
11
11
|
ActiveSupport::Notifications.instrument('perform.chewy_kiqqer', index_name: index_name, ids: ids) do
|
|
12
12
|
with_lock(index_name, ids)
|
|
@@ -15,8 +15,19 @@ module ChewyKiqqer
|
|
|
15
15
|
|
|
16
16
|
private
|
|
17
17
|
|
|
18
|
-
def
|
|
18
|
+
def sidekiq_redis
|
|
19
|
+
# Sidekiq.redis may both be a Redis client directly, or a
|
|
20
|
+
# redis namespace. Since namespaces don't allow for passing through
|
|
21
|
+
# the lock behaviour any more, we want the "real" connection in
|
|
22
|
+
# any case
|
|
19
23
|
Sidekiq.redis do |redis|
|
|
24
|
+
real_redis = redis.is_a?(Redis::Namespace) ? redis.redis : redis
|
|
25
|
+
yield real_redis
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def with_lock(index_name, ids)
|
|
30
|
+
sidekiq_redis do |redis|
|
|
20
31
|
lock_name = "chewy-kiqqer:#{ChewyKiqqer.locking_scope}:#{index_name}-#{ids.join('-')}"
|
|
21
32
|
redis.lock(lock_name, life: 60, acquire: 5) { index(index_name, ids) }
|
|
22
33
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: chewy_kiqqer
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel Hahn
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-10-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: sidekiq
|
|
@@ -169,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
169
169
|
version: '0'
|
|
170
170
|
requirements: []
|
|
171
171
|
rubyforge_project:
|
|
172
|
-
rubygems_version: 2.
|
|
172
|
+
rubygems_version: 2.4.5.1
|
|
173
173
|
signing_key:
|
|
174
174
|
specification_version: 4
|
|
175
175
|
summary: Small helper gem that allows you to automatically run all chewy index updates
|