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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b38a2b9e13d993baffbcd7fd4358b2084f6a927f
4
- data.tar.gz: 3c9dee471042f9b3283c57c7d09772cda865f807
3
+ metadata.gz: 45a2acf586e0293d542d08a5747ba0a824341726
4
+ data.tar.gz: 9fa6652ef77b8d2c1c330f57f3e4d85a7fe14867
5
5
  SHA512:
6
- metadata.gz: 27c5fee038403947e282f928de6a0a1b282936ffd2961f185cde15bae6c6fe09134c893c5aa9503f76bbd4a28273170230e3fa0cd70942c67de8a8b45a82ff16
7
- data.tar.gz: b1cde4837738edbeaedb5bbf30ebe0e1af1523b5f45ac4d0d5610f2cc58f77a4eb871dbc7f379897713b3aea669a2c17e2ff29a9e0bc08e77497a2eeb98111ee
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HealthMonitor
4
- VERSION = '8.0.0'.freeze
4
+ VERSION = '8.1.0'.freeze
5
5
  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.0.0
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-22 00:00:00.000000000 Z
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