process_handler 0.1.3 → 0.1.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 +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
|