resque-alarm 0.1.0 → 0.1.2
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.
data/README.md
CHANGED
@@ -7,10 +7,18 @@ To use this gem, config in an initializer
|
|
7
7
|
|
8
8
|
require 'resque/plugins/alarm'
|
9
9
|
require 'resque/plugins/alarm_notifier/log_notifier'
|
10
|
+
require 'resque/plugins/alarm_notifier/mail_notifier'
|
10
11
|
|
11
12
|
Resque::Plugins::Alarm.configure do |config|
|
12
13
|
config.threshold = 10 # Perform notify when queue have more than 10 items
|
13
14
|
config.notifier = Resque::Plugins::AlarmNotifier::LogNotifier.new(Rails.logger, :info) # Notify to rails log
|
15
|
+
# OR using mail notifier
|
16
|
+
config.notifier = Resque::Plugins::AlarmNotifier::MailNotifier.new(
|
17
|
+
"ops@saleshood.com",
|
18
|
+
"ops@saleshood.com",
|
19
|
+
"alarm",
|
20
|
+
"Queue length reached alarm",
|
21
|
+
["Saleshood",Settings.mailer.host_app,"Resque"] )
|
14
22
|
end
|
15
23
|
|
16
24
|
Extend in job:
|
@@ -2,12 +2,13 @@ module Resque
|
|
2
2
|
module Plugins
|
3
3
|
module AlarmNotifier
|
4
4
|
class LogNotifier
|
5
|
-
def initialize(logger, level)
|
5
|
+
def initialize(logger = nil, level = :info)
|
6
6
|
@logger = logger
|
7
|
-
@level = level
|
7
|
+
@level = level.to_sym
|
8
8
|
end
|
9
9
|
def notify(params)
|
10
|
-
@logger.
|
10
|
+
return unless @logger.respond_to?(@level)
|
11
|
+
@logger.send(@level, format(params))
|
11
12
|
end
|
12
13
|
|
13
14
|
private
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Resque
|
2
|
+
module Plugins
|
3
|
+
module AlarmNotifier
|
4
|
+
class MailNotifier
|
5
|
+
def initialize(from, to, subject = "Queue length reached alarm", tags = ["Resque"], template = "alarm")
|
6
|
+
@from = from
|
7
|
+
@to = to
|
8
|
+
@template = template
|
9
|
+
@subject = subject
|
10
|
+
@tags = tags
|
11
|
+
end
|
12
|
+
def notify(params)
|
13
|
+
@params = params
|
14
|
+
text = ERB.new(File.read(File.dirname(__FILE__) + "/#{@template}.html.erb")).result(binding)
|
15
|
+
subject = "[#{@tags.join('][')}] #{@subject}"
|
16
|
+
MailNotifierMailer.mail_notifier_mailer(@from, @to, subject, text).deliver!
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class MailNotifierMailer < ::ActionMailer::Base
|
21
|
+
def mail_notifier_mailer(from, to, subject, body)
|
22
|
+
mail :from => from, :to => to, :subject => subject do |format|
|
23
|
+
format.html { render :text => body }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resque-alarm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -21,7 +21,9 @@ files:
|
|
21
21
|
- Rakefile
|
22
22
|
- LICENSE
|
23
23
|
- lib/resque/plugins/alarm.rb
|
24
|
+
- lib/resque/plugins/alarm_notifier/alarm.html.erb
|
24
25
|
- lib/resque/plugins/alarm_notifier/log_notifier.rb
|
26
|
+
- lib/resque/plugins/alarm_notifier/mail_notifier.rb
|
25
27
|
homepage: https://github.com/heosuax/resque-alarm
|
26
28
|
licenses: []
|
27
29
|
post_install_message:
|