sidekiq_alive 2.2.2 → 2.2.3
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/sidekiq_alive/redis/base.rb +13 -1
- data/lib/sidekiq_alive/redis/redis_client_gem.rb +14 -2
- data/lib/sidekiq_alive/redis/redis_gem.rb +14 -10
- data/lib/sidekiq_alive/version.rb +1 -1
- data/lib/sidekiq_alive.rb +19 -4
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd90934747b7a9c1ca502f4ad44cdbd25e62477c01b7a3294f4b8c8e2779f27f
|
4
|
+
data.tar.gz: 0e05ab99ca8f24ed17209d6d31b37c5feb5202b899a540db550d892f810d65c0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3dd8df33e8a8d7055728f4f5a0a5e7a4622c5ea9a56480c0a0859e1c2b8ced78fa9a1dbd708ce98acbf8fc8ecbe396f3c8f64df08009d41c4d41243fe81763f5
|
7
|
+
data.tar.gz: e440b167ba6ac102eed86ee2f04273f093ed039e1110b055e0f6f6cefc75068dd0c96aad57fa657384f147a3e78f82b09dbd38357d9f9940fe228a2d0be914a6
|
@@ -7,7 +7,19 @@ module SidekiqAlive
|
|
7
7
|
raise(NotImplementedError)
|
8
8
|
end
|
9
9
|
|
10
|
-
def
|
10
|
+
def zadd(set_key, ex, key)
|
11
|
+
raise(NotImplementedError)
|
12
|
+
end
|
13
|
+
|
14
|
+
def zrange(set_key, start, stop)
|
15
|
+
raise(NotImplementedError)
|
16
|
+
end
|
17
|
+
|
18
|
+
def zrangebyscore(set_key, min, max)
|
19
|
+
raise(NotImplementedError)
|
20
|
+
end
|
21
|
+
|
22
|
+
def zrem(set_key, key)
|
11
23
|
raise(NotImplementedError)
|
12
24
|
end
|
13
25
|
|
@@ -15,8 +15,20 @@ module SidekiqAlive
|
|
15
15
|
Sidekiq.redis { |redis| redis.call("GET", key) }
|
16
16
|
end
|
17
17
|
|
18
|
-
def
|
19
|
-
Sidekiq.redis { |redis| redis.
|
18
|
+
def zadd(set_key, ex, key)
|
19
|
+
Sidekiq.redis { |redis| redis.call("ZADD", set_key, ex, key) }
|
20
|
+
end
|
21
|
+
|
22
|
+
def zrange(set_key, start, stop)
|
23
|
+
Sidekiq.redis { |redis| redis.call("ZRANGE", set_key, start, stop) }
|
24
|
+
end
|
25
|
+
|
26
|
+
def zrangebyscore(set_key, min, max)
|
27
|
+
Sidekiq.redis { |redis| redis.call("ZRANGEBYSCORE", set_key, min, max) }
|
28
|
+
end
|
29
|
+
|
30
|
+
def zrem(set_key, key)
|
31
|
+
Sidekiq.redis { |redis| redis.call("ZREM", set_key, key) }
|
20
32
|
end
|
21
33
|
|
22
34
|
def delete(key)
|
@@ -15,16 +15,20 @@ module SidekiqAlive
|
|
15
15
|
redis.get(key)
|
16
16
|
end
|
17
17
|
|
18
|
-
def
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
18
|
+
def zadd(set_key, ex, key)
|
19
|
+
redis.zadd(set_key, ex, key)
|
20
|
+
end
|
21
|
+
|
22
|
+
def zrange(set_key, start, stop)
|
23
|
+
redis.zrange(set_key, start, stop)
|
24
|
+
end
|
25
|
+
|
26
|
+
def zrangebyscore(set_key, min, max)
|
27
|
+
redis.zrangebyscore(set_key, min, max)
|
28
|
+
end
|
29
|
+
|
30
|
+
def zrem(set_key, key)
|
31
|
+
redis.zrem(set_key, key)
|
28
32
|
end
|
29
33
|
|
30
34
|
def delete(key)
|
data/lib/sidekiq_alive.rb
CHANGED
@@ -9,6 +9,7 @@ require "sidekiq_alive/helpers"
|
|
9
9
|
require "sidekiq_alive/redis"
|
10
10
|
|
11
11
|
module SidekiqAlive
|
12
|
+
HOSTNAME_REGISTRY = "sidekiq-alive-hostnames"
|
12
13
|
class << self
|
13
14
|
def start
|
14
15
|
Sidekiq.configure_server do |sq_config|
|
@@ -28,6 +29,7 @@ module SidekiqAlive
|
|
28
29
|
logger.info(startup_info)
|
29
30
|
|
30
31
|
register_current_instance
|
32
|
+
|
31
33
|
store_alive_key
|
32
34
|
# Passing the hostname argument it's only for debugging enqueued jobs
|
33
35
|
SidekiqAlive::Worker.perform_async(hostname)
|
@@ -63,11 +65,13 @@ module SidekiqAlive
|
|
63
65
|
# Delete any pending jobs for this instance
|
64
66
|
logger.info(shutdown_info)
|
65
67
|
purge_pending_jobs
|
66
|
-
redis.
|
68
|
+
redis.zrem(HOSTNAME_REGISTRY, current_instance_register_key)
|
67
69
|
end
|
68
70
|
|
69
71
|
def registered_instances
|
70
|
-
|
72
|
+
# before we return we make sure we expire old keys
|
73
|
+
expire_old_keys
|
74
|
+
redis.zrange(HOSTNAME_REGISTRY, 0, -1)
|
71
75
|
end
|
72
76
|
|
73
77
|
def purge_pending_jobs
|
@@ -136,6 +140,7 @@ module SidekiqAlive
|
|
136
140
|
port: config.port,
|
137
141
|
ttl: config.time_to_live,
|
138
142
|
queue: current_queue,
|
143
|
+
register_set: HOSTNAME_REGISTRY,
|
139
144
|
liveness_key: current_lifeness_key,
|
140
145
|
register_key: current_instance_register_key,
|
141
146
|
}
|
@@ -144,11 +149,21 @@ module SidekiqAlive
|
|
144
149
|
end
|
145
150
|
|
146
151
|
def successful_startup_text
|
147
|
-
"Successfully started sidekiq-alive, registered with key:
|
152
|
+
"Successfully started sidekiq-alive, registered with key: "\
|
153
|
+
"#{current_instance_register_key} on set #{HOSTNAME_REGISTRY}"
|
154
|
+
end
|
155
|
+
|
156
|
+
def expire_old_keys
|
157
|
+
# we get every key that should be expired by now
|
158
|
+
keys_to_expire = redis.zrangebyscore(HOSTNAME_REGISTRY, 0, Time.now.to_i)
|
159
|
+
# then we remove it
|
160
|
+
keys_to_expire.each { |key| redis.zrem(HOSTNAME_REGISTRY, key) }
|
148
161
|
end
|
149
162
|
|
150
163
|
def register_instance(instance_name)
|
151
|
-
|
164
|
+
expiration = Time.now.to_i + config.registration_ttl.to_i
|
165
|
+
redis.zadd(HOSTNAME_REGISTRY, expiration, instance_name)
|
166
|
+
expire_old_keys
|
152
167
|
end
|
153
168
|
end
|
154
169
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sidekiq_alive
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrejs Cunskis
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2023-
|
12
|
+
date: 2023-07-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -213,7 +213,7 @@ metadata:
|
|
213
213
|
homepage_uri: https://github.com/arturictus/sidekiq_alive
|
214
214
|
source_code_uri: https://github.com/arturictus/sidekiq_alive
|
215
215
|
changelog_uri: https://github.com/arturictus/sidekiq_alive/releases
|
216
|
-
documentation_uri: https://github.com/arturictus/sidekiq_alive/blob/v2.2.
|
216
|
+
documentation_uri: https://github.com/arturictus/sidekiq_alive/blob/v2.2.3/README.md
|
217
217
|
bug_tracker_uri: https://github.com/arturictus/sidekiq_alive/issues
|
218
218
|
post_install_message:
|
219
219
|
rdoc_options: []
|