health-monitor-rails 8.0.0 → 8.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/lib/health_monitor/configuration.rb +2 -3
- data/lib/health_monitor/providers/delayed_job.rb +48 -0
- data/lib/health_monitor/version.rb +1 -1
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45a2acf586e0293d542d08a5747ba0a824341726
|
4
|
+
data.tar.gz: 9fa6652ef77b8d2c1c330f57f3e4d85a7fe14867
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b0807e93a9b5582879d988e798408f8cdd66f94ae83fca0529e2e3ecae6fbf6c7c19d87e28849a9e5e211eab486515f00267ac1e7a005995ec548d1000913e85
|
7
|
+
data.tar.gz: fb0dcdab32f5854c6ae2b3e647b0c5010dc1a4f0ba349449b825cd6a54a946df5c647fd395e057c68d649f039feb227753f2af12ed169b21c8b849b68d625efd
|
data/README.md
CHANGED
@@ -120,6 +120,7 @@ The following services are currently supported:
|
|
120
120
|
* Redis
|
121
121
|
* Sidekiq
|
122
122
|
* Resque
|
123
|
+
* Delayed Job
|
123
124
|
|
124
125
|
## Configuration
|
125
126
|
|
@@ -131,6 +132,7 @@ HealthMonitor.configure do |config|
|
|
131
132
|
config.cache
|
132
133
|
config.redis
|
133
134
|
config.sidekiq
|
135
|
+
config.delayed_job
|
134
136
|
end
|
135
137
|
```
|
136
138
|
|
@@ -181,6 +183,10 @@ The currently supported settings are:
|
|
181
183
|
* `connection`: Use custom redis connection (e.g., `Redis.current`).
|
182
184
|
* `max_used_memory`: Set maximum expected memory usage of Redis in megabytes. Prevent memory leaks and keys overstore.
|
183
185
|
|
186
|
+
#### Delayed Job
|
187
|
+
|
188
|
+
* `queue_size`: the size (maximim) of a queue which is considered unhealthy (the default is 100).
|
189
|
+
|
184
190
|
### Adding a Custom Provider
|
185
191
|
It's also possible to add custom health check providers suited for your needs (of course, it's highly appreciated and encouraged if you'd contribute useful providers to the project).
|
186
192
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module HealthMonitor
|
2
2
|
class Configuration
|
3
|
-
PROVIDERS = %i[cache database redis resque sidekiq].freeze
|
3
|
+
PROVIDERS = %i[cache database delayed_job redis resque sidekiq].freeze
|
4
4
|
|
5
5
|
attr_accessor :error_callback, :basic_auth_credentials, :environment_variables
|
6
6
|
attr_reader :providers
|
@@ -16,8 +16,7 @@ module HealthMonitor
|
|
16
16
|
PROVIDERS.each do |provider_name|
|
17
17
|
define_method provider_name do |&_block|
|
18
18
|
require "health_monitor/providers/#{provider_name}"
|
19
|
-
|
20
|
-
add_provider("HealthMonitor::Providers::#{provider_name.capitalize}".constantize)
|
19
|
+
add_provider("HealthMonitor::Providers::#{provider_name.to_s.titleize.delete(' ')}".constantize)
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'health_monitor/providers/base'
|
2
|
+
require 'delayed_job'
|
3
|
+
|
4
|
+
module HealthMonitor
|
5
|
+
module Providers
|
6
|
+
class DelayedJobException < StandardError; end
|
7
|
+
|
8
|
+
class DelayedJob < Base
|
9
|
+
class Configuration
|
10
|
+
DEFAULT_QUEUES_SIZE = 100
|
11
|
+
|
12
|
+
attr_accessor :queue_size
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
@queue_size = DEFAULT_QUEUES_SIZE
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def check!
|
20
|
+
check_queue_size!
|
21
|
+
rescue Exception => e
|
22
|
+
raise DelayedJobException.new(e.message)
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
class << self
|
28
|
+
private
|
29
|
+
|
30
|
+
def configuration_class
|
31
|
+
::HealthMonitor::Providers::DelayedJob::Configuration
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def check_queue_size!
|
36
|
+
size = job_class.count
|
37
|
+
|
38
|
+
return unless size > configuration.queue_size
|
39
|
+
|
40
|
+
raise "queue size #{size} is greater than #{configuration.queue_size}"
|
41
|
+
end
|
42
|
+
|
43
|
+
private def job_class
|
44
|
+
@job_class ||= ::Delayed::Job
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: health-monitor-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.
|
4
|
+
version: 8.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leonid Beder
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-03-
|
11
|
+
date: 2018-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: delayed_job_active_record
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '4.1'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '4.1'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: pry
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -254,6 +268,7 @@ files:
|
|
254
268
|
- lib/health_monitor/providers/base.rb
|
255
269
|
- lib/health_monitor/providers/cache.rb
|
256
270
|
- lib/health_monitor/providers/database.rb
|
271
|
+
- lib/health_monitor/providers/delayed_job.rb
|
257
272
|
- lib/health_monitor/providers/redis.rb
|
258
273
|
- lib/health_monitor/providers/resque.rb
|
259
274
|
- lib/health_monitor/providers/sidekiq.rb
|