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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 57a459677aa86f7edb338f7b149879123b9aa357
4
- data.tar.gz: cd1f2071502978dbe3c31b17c64e295db3af822a
3
+ metadata.gz: 3a8ce886bcf74bd096fda20413f4e42bff0c1bf1
4
+ data.tar.gz: 198a41c1a79223f2afbefc20355124b780cff25a
5
5
  SHA512:
6
- metadata.gz: 88178bccfac963039aa8cba1e20ceefa3cd655818be986221a7ebeb398531fbd896567ccdc704c886c7b39081ca8e38047987eb3b18236d1b4e5acee8faaaae4
7
- data.tar.gz: 5fb659d023a51a281c29bfee44de927faa777d8ac3963a1e2038594b02f1c6bb50f704606eaf73ce0dca4db0a6b14cd5420231296712f5757da8413a337ff184
6
+ metadata.gz: aef248caa4e278f58c8ffe6a65b77acf29c3e00891e3d5b69cd2708eaaa5212805c4cd3d3e89d741a50290b94b394cf62f2a1cbf5fb97a479e98f95d0ef5e3c0
7
+ data.tar.gz: ead7ce04022c41201b3d22590802116cf4b70c4badd42b3481c7ffa62b55263d156b125cd566181db9823b10b5a32f56c92dc7695bceab0f9d96705b5ae3a3c9
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .tags
data/.travis.yml CHANGED
@@ -4,6 +4,8 @@ services:
4
4
  rvm:
5
5
  - 2.0.0
6
6
  - 2.1.2
7
+ - 2.2.3
8
+ sudo: false
7
9
  addons:
8
10
  code_climate:
9
11
  repo_token: dadcc13fd018e8813c5052a604bec42110d8f4c0931414639973cb94e5e150cb
@@ -1,3 +1,3 @@
1
1
  module ChewyKiqqer
2
- VERSION = "0.2.5"
2
+ VERSION = "0.2.6"
3
3
  end
@@ -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 with_lock(index_name, ids)
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.5
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-06-30 00:00:00.000000000 Z
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.2.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