process_handler 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +12 -8
- data/lib/salemove/process_handler/cron_process.rb +1 -1
- data/lib/salemove/process_handler/notifier_factory.rb +14 -2
- data/lib/salemove/process_handler/pivot_process.rb +7 -2
- data/lib/salemove/process_handler/version.rb +1 -1
- data/process_handler.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff4e2a587e84382929a12928c9f9093759aca40e
|
4
|
+
data.tar.gz: 3dd89d17d43ddd831ea4d95d1e38bd8228c2b6b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aef867b0e7fc0af4129f489226037b3df13ed9924c6724c9e3f1f6d63b52fda470270cf745937f167e707da7d2c9103537231311ccc15555d66c77eb1c060055
|
7
|
+
data.tar.gz: 50eb493c7ec03a14109bf7f5997e8d1e736abbf83b6430845c59f416091287effeddfb929d7b80c84eabae0420cfa37da6fb43750d6b9e493441e37b16a3c5c2
|
data/Gemfile.lock
CHANGED
@@ -1,28 +1,31 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
process_handler (0.1.
|
4
|
+
process_handler (0.1.4)
|
5
5
|
airbrake
|
6
|
+
growl
|
6
7
|
sucker_punch (~> 1.1)
|
7
8
|
|
8
9
|
GEM
|
9
10
|
remote: https://rubygems.org/
|
10
11
|
specs:
|
11
|
-
airbrake (4.
|
12
|
+
airbrake (4.3.0)
|
12
13
|
builder
|
13
14
|
multi_json
|
14
15
|
builder (3.2.2)
|
15
|
-
celluloid (0.
|
16
|
-
timers (~>
|
16
|
+
celluloid (0.16.0)
|
17
|
+
timers (~> 4.0.0)
|
17
18
|
coderay (1.1.0)
|
18
19
|
diff-lcs (1.2.5)
|
20
|
+
growl (1.0.3)
|
21
|
+
hitimes (1.2.2)
|
19
22
|
inflecto (0.0.2)
|
20
23
|
logasm (0.1.0)
|
21
24
|
inflecto
|
22
25
|
logstash-event (~> 1.2)
|
23
26
|
logstash-event (1.2.02)
|
24
27
|
method_source (0.8.2)
|
25
|
-
multi_json (1.
|
28
|
+
multi_json (1.11.2)
|
26
29
|
pry (0.9.12.6)
|
27
30
|
coderay (~> 1.0)
|
28
31
|
method_source (~> 0.8)
|
@@ -43,10 +46,11 @@ GEM
|
|
43
46
|
rufus-scheduler (3.0.9)
|
44
47
|
tzinfo
|
45
48
|
slop (3.4.7)
|
46
|
-
sucker_punch (1.
|
47
|
-
celluloid (~> 0.
|
49
|
+
sucker_punch (1.5.0)
|
50
|
+
celluloid (~> 0.16.0)
|
48
51
|
thread_safe (0.3.4)
|
49
|
-
timers (
|
52
|
+
timers (4.0.1)
|
53
|
+
hitimes
|
50
54
|
tzinfo (1.2.2)
|
51
55
|
thread_safe (~> 0.1)
|
52
56
|
|
@@ -30,7 +30,7 @@ module Salemove
|
|
30
30
|
notifier_factory: NotifierFactory,
|
31
31
|
scheduler_options: {})
|
32
32
|
@schedules = []
|
33
|
-
@exception_notifier = notifier_factory.get_notifier(env, notifier)
|
33
|
+
@exception_notifier = notifier_factory.get_notifier(env, 'Cron Process', notifier)
|
34
34
|
@scheduler = CronScheduler.new @exception_notifier, scheduler_options
|
35
35
|
@process_monitor = CronProcessMonitor.new(self)
|
36
36
|
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'airbrake'
|
2
|
+
require 'growl'
|
2
3
|
|
3
4
|
module Salemove
|
4
5
|
module ProcessHandler
|
5
6
|
class NotifierFactory
|
6
7
|
|
7
|
-
def self.get_notifier(env, conf)
|
8
|
+
def self.get_notifier(env, process_name, conf)
|
8
9
|
if conf && conf[:type] == 'airbrake'
|
9
10
|
Airbrake.configure do |airbrake|
|
10
11
|
airbrake.async = true
|
@@ -13,9 +14,20 @@ module Salemove
|
|
13
14
|
airbrake.api_key = conf.fetch(:api_key)
|
14
15
|
end
|
15
16
|
Airbrake
|
17
|
+
elsif conf && conf[:type] == 'growl'
|
18
|
+
GrowlNotifier.new(process_name)
|
16
19
|
end
|
17
|
-
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class GrowlNotifier
|
24
|
+
def initialize(process_name)
|
25
|
+
@process_name = process_name
|
26
|
+
end
|
18
27
|
|
28
|
+
def notify_or_ignore(error, params)
|
29
|
+
Growl.notify error.message, title: "Error in #{@process_name}"
|
30
|
+
end
|
19
31
|
end
|
20
32
|
end
|
21
33
|
end
|
@@ -23,10 +23,14 @@ module Salemove
|
|
23
23
|
env: 'development',
|
24
24
|
notifier: nil,
|
25
25
|
notifier_factory: NotifierFactory,
|
26
|
-
process_monitor: ProcessMonitor.new
|
26
|
+
process_monitor: ProcessMonitor.new,
|
27
|
+
process_name: 'Unknown process',
|
28
|
+
exit_enforcer: nil)
|
27
29
|
@messenger = messenger
|
28
30
|
@process_monitor = process_monitor
|
29
|
-
@exception_notifier = notifier_factory.get_notifier(env, notifier)
|
31
|
+
@exception_notifier = notifier_factory.get_notifier(env, process_name, notifier)
|
32
|
+
# Needed for forcing exit from jruby with exit(0)
|
33
|
+
@exit_enforcer = exit_enforcer || Proc.new {}
|
30
34
|
end
|
31
35
|
|
32
36
|
def spawn(service, blocking: true)
|
@@ -76,6 +80,7 @@ module Salemove
|
|
76
80
|
service_thread.join
|
77
81
|
end
|
78
82
|
@process_monitor.shutdown
|
83
|
+
@exit_enforcer.call
|
79
84
|
end
|
80
85
|
|
81
86
|
class TapServiceSpawner
|
data/process_handler.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: process_handler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Indrek Juhkam
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: airbrake
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.1'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: growl
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
description: This gem helps to monitor and manage processes
|
42
56
|
email:
|
43
57
|
- indrek@salemove.com
|