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