check_resque_paranoid 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -2,7 +2,16 @@
2
2
 
3
3
  It checks resque by putting given job in high queue and expects the job will update key with timestamp.
4
4
 
5
- ```$ check_resque -n 'resque:production' -j 'NagiosResque::Job'
5
+ ## Install
6
+
7
+ In Gemfile:
8
+ gem "check_resque_paranoid", :require => 'nagios_resque'
9
+
10
+ Or withoud Bundler:
11
+ ```
12
+ $ gem install check_resque_paranoid
13
+ $ check_resque -n 'resque:production' -j 'NagiosResque::Job'
14
+ ```
6
15
 
7
16
  ## Default Job
8
17
 
data/bin/check_resque CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  begin
26
26
  require 'rubygems'
27
- gem 'nagios_resque'
27
+ gem 'check_resque_paranoid'
28
28
  rescue LoadError
29
29
  end
30
30
 
@@ -27,6 +27,6 @@ Gem::Specification.new do |s|
27
27
 
28
28
  s.executables = %w[check_resque]
29
29
 
30
- s.add_dependency('resque')
30
+ s.add_dependency('redis')
31
31
  s.add_dependency('nagiosplugin')
32
32
  end
data/lib/nagios_resque.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'resque'
1
+ require 'redis'
2
2
  require 'nagiosplugin'
3
3
  require 'nagiosplugin/default_options'
4
4
  require 'nagios_resque/version'
@@ -8,7 +8,19 @@ module NagiosResque
8
8
  @warning = options[:warn]
9
9
  @critical = options[:crit]
10
10
 
11
- Resque.redis = "#{@host}:#{@port}/#{@namespace}"
11
+ @redis = ResqueRedis.new(:host => @host, :port => @port, :namespace => @namespace)
12
+ end
13
+
14
+ # It is just (:class => @job, :args => []).to_json
15
+ # Don't want to depend on resque gem which itself has many dependecies
16
+ def payload
17
+ %Q({"class":"#{@job}","args":[]})
18
+ end
19
+
20
+ def requeue
21
+ @redis.sadd 'queues', 'high'
22
+ @redis.lrem 'queue:high', 0, payload
23
+ @redis.rpush 'queue:high', payload
12
24
  end
13
25
 
14
26
  def warning?
@@ -21,7 +33,7 @@ module NagiosResque
21
33
  end
22
34
 
23
35
  def last_run_at
24
- if time = Resque.redis.get(NAGIOS_RESQUE_TIMESTAMP_KEY)
36
+ if time = @redis.get(NAGIOS_RESQUE_TIMESTAMP_KEY)
25
37
  Integer(time)
26
38
  end
27
39
  end
@@ -37,9 +49,28 @@ module NagiosResque
37
49
  end
38
50
  end
39
51
 
40
- def requeue
41
- Resque::Job.destroy(:high, @job)
42
- Resque::Job.create(:high, @job)
52
+ class ResqueRedis
53
+ def initialize(options)
54
+ @namespace = options.delete(:namespace)
55
+ @redis = Redis.new options.merge(:thread_safe => true)
56
+ end
57
+
58
+ def namespaced(key)
59
+ "#{@namespace}:#{key}"
60
+ end
61
+
62
+ def get(key)
63
+ @redis.get namespaced(key)
64
+ end
65
+ def sadd(key, value)
66
+ @redis.sadd namespaced(key), value
67
+ end
68
+ def lrem(key, count, value)
69
+ @redis.lrem namespaced(key), count, value
70
+ end
71
+ def rpush(key, value)
72
+ @redis.rpush namespaced(key), value
73
+ end
43
74
  end
44
75
 
45
76
  def ok_message
@@ -1,3 +1,3 @@
1
1
  module NagiosResque
2
- VERSION = '1.0.0'
2
+ VERSION = '1.0.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: check_resque_paranoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ cert_chain: []
12
12
  date: 2013-06-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: resque
15
+ name: redis
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements: