resque-failed-job-mailer-2 0.0.4
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 +7 -0
- data/.gitignore +5 -0
- data/.travis.yml +3 -0
- data/Gemfile +4 -0
- data/README.md +57 -0
- data/Rakefile +7 -0
- data/lib/resque_failed_job_mailer.rb +25 -0
- data/lib/resque_failed_job_mailer/alert.html.erb +22 -0
- data/lib/resque_failed_job_mailer/mailer.rb +13 -0
- data/lib/resque_failed_job_mailer/resque/failure/notifier.rb +23 -0
- data/lib/resque_failed_job_mailer/version.rb +3 -0
- data/resque_failed_job_mailer.gemspec +23 -0
- data/spec/resque_failed_job_mailer_spec.rb +52 -0
- metadata +117 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8ea7b2b4dd11c0a0cad06fa79df3a23a62f102f3
|
4
|
+
data.tar.gz: f31891ff881670b4420265e61adcc1189016e43b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ef81563d3126a0bb0d3d24f9fe74d8f8aba8ff207116f2fb33c0ee1b83c8e25c4a54f8b58de1718a9e0e7cef3b47779c3184b1a09627783508a9ff5b672d2850
|
7
|
+
data.tar.gz: f3447512eeee58ebe7c191621c76e80b11e7a62cf737555b91af28f8e146075ad756c99bf881bd0ddbbc7b0c733c4ccd8c58026495a71ba5a4dc614636940af3
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
Overview
|
2
|
+
--------
|
3
|
+
|
4
|
+
Send email with predefined template when resque worker die of any reason.
|
5
|
+
|
6
|
+
Folk from https://github.com/anandagrawal84/resque_failed_job_mailer and customizable.
|
7
|
+
|
8
|
+
Making it general and seperate from anandagrawal84/resque_failed_job_mailer due to inactive repo.
|
9
|
+
|
10
|
+
|
11
|
+
Installation
|
12
|
+
------------
|
13
|
+
|
14
|
+
```bash
|
15
|
+
gem install resque-failed-job-mailer-2
|
16
|
+
```
|
17
|
+
|
18
|
+
Or add to Gemfile:
|
19
|
+
|
20
|
+
```
|
21
|
+
gem 'resque-failed-job-mailer-2'
|
22
|
+
```
|
23
|
+
|
24
|
+
|
25
|
+
Usage
|
26
|
+
-----
|
27
|
+
All you need to do is configure ActionMailer for smtp details. Add following configuration file `resque_failed_job_mailer.rb` in `config/initializer` folder
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
Resque::Failure::Notifier.configure do |config|
|
31
|
+
config.from = 'dummy@dummy.com' # from address
|
32
|
+
config.to = 'dummy@dummy.com' # to address
|
33
|
+
config.include_payload = true # disabled by default for security
|
34
|
+
config.include_exception = true # disabled by default for security
|
35
|
+
config.tags = ["ProjectX","Wolverine","Resque"] # [ProjectX][Wolverine][Resque] tag displayed in email summary
|
36
|
+
end
|
37
|
+
```
|
38
|
+
|
39
|
+
as soon as resque job fail it would send out an email to the configured email address.
|
40
|
+
|
41
|
+
Configuration
|
42
|
+
-------------
|
43
|
+
|
44
|
+
If you want to use your own email mechanism then add following configuration
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
Resque::Failure::Notifier.configure do |config|
|
48
|
+
config.mailer = ActionMailerClass
|
49
|
+
config.mail = ActionMailerMailMethod
|
50
|
+
config.from = 'dummy@dummy.com' # from address
|
51
|
+
config.to = 'dummy@dummy.com' # to address
|
52
|
+
end
|
53
|
+
```
|
54
|
+
|
55
|
+
`config.mailer` is any class that extends `ActionMailer::Base`
|
56
|
+
|
57
|
+
`config.mail` is mail in class given above in `config.mailer`
|
data/Rakefile
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require "resque_failed_job_mailer/version"
|
2
|
+
require 'resque/server'
|
3
|
+
require 'resque/failure/multiple'
|
4
|
+
require 'resque/failure/redis'
|
5
|
+
require 'action_mailer'
|
6
|
+
require 'resque_failed_job_mailer/mailer'
|
7
|
+
require 'resque_failed_job_mailer/resque/failure/notifier'
|
8
|
+
|
9
|
+
Resque::Failure::Multiple.configure do |config|
|
10
|
+
config.classes = [Resque::Failure::Redis, Resque::Failure::Notifier]
|
11
|
+
end
|
12
|
+
|
13
|
+
Resque::Failure::Notifier.configure do |config|
|
14
|
+
config.mailer = ResqueFailedJobMailer::Mailer
|
15
|
+
config.mail = :alert
|
16
|
+
config.from = "no_reply@gmail.com"
|
17
|
+
config.to = "dummy@dummy.com"
|
18
|
+
config.tags = ["Resque"]
|
19
|
+
config.include_payload = false
|
20
|
+
config.include_exception = false
|
21
|
+
end
|
22
|
+
|
23
|
+
module ResqueFailedJobMailer
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<p>
|
2
|
+
<strong>Queue: </strong>
|
3
|
+
<%= @notifier.queue %>
|
4
|
+
</p>
|
5
|
+
<p>
|
6
|
+
<strong>Worker: </strong>
|
7
|
+
<%= @notifier.worker %>
|
8
|
+
</p>
|
9
|
+
<% if @notifier.class.include_payload %>
|
10
|
+
<p>
|
11
|
+
<strong>Payload: </strong>
|
12
|
+
<%= @notifier.payload %>
|
13
|
+
</p>
|
14
|
+
<% end %>
|
15
|
+
<% if @notifier.class.include_exception %>
|
16
|
+
<strong> Exception: </strong>
|
17
|
+
<p>
|
18
|
+
<%= @notifier.exception %>
|
19
|
+
<pre><% @notifier.exception.backtrace.each do |t| %><%= t %>
|
20
|
+
<% end %></pre>
|
21
|
+
</p>
|
22
|
+
<% end %>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module ResqueFailedJobMailer
|
2
|
+
class Mailer < ::ActionMailer::Base
|
3
|
+
def alert notifier
|
4
|
+
@notifier = notifier
|
5
|
+
text = ERB.new(File.read(File.dirname(__FILE__) + "/alert.html.erb")).result(binding)
|
6
|
+
tags = Resque::Failure::Notifier.tags
|
7
|
+
subject = "[#{tags.join('][')}] #{@notifier.exception}"
|
8
|
+
mail :from => Resque::Failure::Notifier.from, :to => Resque::Failure::Notifier.to, :subject => subject do |format|
|
9
|
+
format.html { render :text => text }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'action_mailer'
|
2
|
+
|
3
|
+
module Resque
|
4
|
+
module Failure
|
5
|
+
class Notifier < Base
|
6
|
+
class << self
|
7
|
+
attr_accessor :mailer, :mail, :from, :to, :include_payload, :include_exception, :tags
|
8
|
+
|
9
|
+
def configure
|
10
|
+
yield self
|
11
|
+
self.include_payload = false if include_payload.nil?
|
12
|
+
self.include_exception = false if include_exception.nil?
|
13
|
+
Resque::Failure.backend = self unless Resque::Failure.backend == Resque::Failure::Multiple
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def save
|
18
|
+
self.class.mailer.send(self.class.mail, self).deliver
|
19
|
+
rescue
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "resque_failed_job_mailer/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "resque-failed-job-mailer-2"
|
7
|
+
s.version = ResqueFailedJobMailer::VERSION
|
8
|
+
s.authors = ["Anand Agrawal", "Rajashree Malvade", "An Vo"]
|
9
|
+
s.email = ["aagrawal@thoughtworks.com", "rajashreermalvade@gmail.com", "thien.an.vo.nguyen@gmail.com"]
|
10
|
+
s.homepage = 'https://github.com/anvox/resque_failed_job_mailer'
|
11
|
+
s.summary = %q{Gem that sends mail in case of resque job failure.}
|
12
|
+
s.description = %q{Gem that sends mail in case of resque job failure. Extend to customize email summary, payload, exception.}
|
13
|
+
|
14
|
+
s.files = `git ls-files`.split("\n")
|
15
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
|
19
|
+
s.add_development_dependency 'rake', '~> 0'
|
20
|
+
s.add_development_dependency 'rspec', '~> 0'
|
21
|
+
s.add_development_dependency 'actionmailer', '~> 0'
|
22
|
+
s.add_development_dependency 'resque', '~> 0'
|
23
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'resque/server'
|
2
|
+
require 'resque/failure/multiple'
|
3
|
+
require 'resque/failure/redis'
|
4
|
+
require 'action_mailer'
|
5
|
+
require 'resque_failed_job_mailer/mailer'
|
6
|
+
require 'resque_failed_job_mailer/resque/failure/notifier'
|
7
|
+
|
8
|
+
describe Resque::Failure::Notifier do
|
9
|
+
|
10
|
+
describe "configure" do
|
11
|
+
Resque::Failure::Notifier.configure do |config|
|
12
|
+
config.mailer = ResqueFailedJobMailer::Mailer
|
13
|
+
config.mail = :alert
|
14
|
+
config.from = "no_reply@gmail.com"
|
15
|
+
config.to = "dummy@dummy.com"
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should return mailer class" do
|
19
|
+
Resque::Failure::Notifier.mailer.should == ResqueFailedJobMailer::Mailer
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return mail method" do
|
23
|
+
Resque::Failure::Notifier.mail.should == :alert
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should return sender address" do
|
27
|
+
Resque::Failure::Notifier.from.should == "no_reply@gmail.com"
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should return recipient address" do
|
31
|
+
Resque::Failure::Notifier.to.should == "dummy@dummy.com"
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should return default include_payload method" do
|
35
|
+
Resque::Failure::Notifier.include_payload.should be_true
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "save" do
|
40
|
+
Resque::Failure::Notifier.configure do |config|
|
41
|
+
config.mailer = ResqueFailedJobMailer::Mailer
|
42
|
+
config.mail = :alert
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should send the mail if job fails" do
|
46
|
+
notifier = Resque::Failure::Notifier.new(nil, nil, nil, nil)
|
47
|
+
ResqueFailedJobMailer::Mailer.should_receive(:alert).with(notifier).and_return(mail = mock('mail'))
|
48
|
+
mail.should_receive(:deliver)
|
49
|
+
notifier.save
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
metadata
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: resque-failed-job-mailer-2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Anand Agrawal
|
8
|
+
- Rajashree Malvade
|
9
|
+
- An Vo
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2016-01-19 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: rake
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '0'
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: rspec
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ~>
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
type: :development
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ~>
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: actionmailer
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ~>
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
type: :development
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: resque
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ~>
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ~>
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
description: Gem that sends mail in case of resque job failure. Extend to customize
|
72
|
+
email summary, payload, exception.
|
73
|
+
email:
|
74
|
+
- aagrawal@thoughtworks.com
|
75
|
+
- rajashreermalvade@gmail.com
|
76
|
+
- thien.an.vo.nguyen@gmail.com
|
77
|
+
executables: []
|
78
|
+
extensions: []
|
79
|
+
extra_rdoc_files: []
|
80
|
+
files:
|
81
|
+
- .gitignore
|
82
|
+
- .travis.yml
|
83
|
+
- Gemfile
|
84
|
+
- README.md
|
85
|
+
- Rakefile
|
86
|
+
- lib/resque_failed_job_mailer.rb
|
87
|
+
- lib/resque_failed_job_mailer/alert.html.erb
|
88
|
+
- lib/resque_failed_job_mailer/mailer.rb
|
89
|
+
- lib/resque_failed_job_mailer/resque/failure/notifier.rb
|
90
|
+
- lib/resque_failed_job_mailer/version.rb
|
91
|
+
- resque_failed_job_mailer.gemspec
|
92
|
+
- spec/resque_failed_job_mailer_spec.rb
|
93
|
+
homepage: https://github.com/anvox/resque_failed_job_mailer
|
94
|
+
licenses: []
|
95
|
+
metadata: {}
|
96
|
+
post_install_message:
|
97
|
+
rdoc_options: []
|
98
|
+
require_paths:
|
99
|
+
- lib
|
100
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - '>='
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0'
|
105
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
requirements: []
|
111
|
+
rubyforge_project:
|
112
|
+
rubygems_version: 2.4.8
|
113
|
+
signing_key:
|
114
|
+
specification_version: 4
|
115
|
+
summary: Gem that sends mail in case of resque job failure.
|
116
|
+
test_files: []
|
117
|
+
has_rdoc:
|