neetodeploy-autoscale 2.0.5 → 2.0.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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bffc52d124f0b677da6669f6b34b26347b0710396d362a17af10cb22dbf029a9
|
|
4
|
+
data.tar.gz: dd98640212220a0d4426d2fce3066f4764e1194a79da602b03428bc0c10e7dc3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1e1b0fe71a3a89605214d79c971f63f52bbd75804dabf4b75b817824e65941a861fe7f32f159efc7126f5d53da8b1755b954d96efe8bb66341097a9afcad38a6
|
|
7
|
+
data.tar.gz: fa8e816a7be8dbdb7395272cd1c4ce67509b1048fb41feca137a62802ffb8607ebc3edc399c17faaf1a9fdbcfce5d5c6ef39ca5f0bf7cd959badcf1ebc46ce78
|
|
@@ -29,24 +29,30 @@ module Neetodeploy
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
def running?
|
|
32
|
-
@pid == Process.pid
|
|
32
|
+
@pid == Process.pid && @thread&.alive?
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def start_thread_with_collector_loop(config = Config.instance)
|
|
36
36
|
@thread = Thread.new do
|
|
37
|
+
# Use a non-recursive loop pattern to avoid SystemStackError and ThreadError on shutdown
|
|
37
38
|
loop do
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
39
|
+
begin
|
|
40
|
+
loop do
|
|
41
|
+
run_sidekiq_metrics_collection
|
|
42
|
+
multiplier = 1 - (rand / 4)
|
|
43
|
+
sleep config.report_interval_seconds * multiplier
|
|
44
|
+
end
|
|
45
|
+
rescue StandardError => e
|
|
46
|
+
logger.error("Sidekiq metrics collector thread terminated with error: #{e.message}")
|
|
47
|
+
logger.error(e.backtrace.join("\n")) if e.backtrace
|
|
48
|
+
|
|
49
|
+
# Only restart if we're still the same process and thread should continue
|
|
50
|
+
# Check if Sidekiq is shutting down to avoid ThreadError during shutdown
|
|
51
|
+
break unless @pid == Process.pid && !@thread.nil? && sidekiq_running?
|
|
52
|
+
|
|
53
|
+
logger.info("Restarting Sidekiq metrics collector thread")
|
|
54
|
+
sleep(5)
|
|
55
|
+
end
|
|
50
56
|
end
|
|
51
57
|
end
|
|
52
58
|
end
|
|
@@ -73,6 +79,11 @@ module Neetodeploy
|
|
|
73
79
|
defined?(::Sidekiq) && ::Sidekiq.respond_to?(:redis)
|
|
74
80
|
end
|
|
75
81
|
|
|
82
|
+
def sidekiq_running?
|
|
83
|
+
# Check if Sidekiq server is still running to avoid restarting during shutdown
|
|
84
|
+
defined?(::Sidekiq) && ::Sidekiq.respond_to?(:server?) && ::Sidekiq.server?
|
|
85
|
+
end
|
|
86
|
+
|
|
76
87
|
def collect_queue_metrics(queue)
|
|
77
88
|
queue_name = queue.name
|
|
78
89
|
latency_ms = (queue.latency * 1000).ceil
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: neetodeploy-autoscale
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sreeram Venkitesh
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-11-
|
|
11
|
+
date: 2025-11-14 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: For automatically scaling your Rails application based on network metrics
|
|
14
14
|
email:
|