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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5b3e99c6bdab6b69d12a5a474666c512174360e0
4
- data.tar.gz: 3424ff7f14a8c0e219fd4dded8bde82e480f04ff
3
+ metadata.gz: ff4e2a587e84382929a12928c9f9093759aca40e
4
+ data.tar.gz: 3dd89d17d43ddd831ea4d95d1e38bd8228c2b6b7
5
5
  SHA512:
6
- metadata.gz: dac9142e911cb9a56f1b877b6a8ec888521effd2201240bbffa58054ac8813a4280d1b8726924dd0a85cb3ecf4aa5653a9408f8f15903f3dccee38057e1af0fb
7
- data.tar.gz: 07cd4ae7c681df57c7da57fc428e731404e05ada1666cf7a279ca7e26a8918d74c95b655ea77accdba97255094b9adab2ff59570b75e04445c702533a93b1da9
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.3)
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.1.0)
12
+ airbrake (4.3.0)
12
13
  builder
13
14
  multi_json
14
15
  builder (3.2.2)
15
- celluloid (0.15.2)
16
- timers (~> 1.1.0)
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.10.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.2.1)
47
- celluloid (~> 0.15.2)
49
+ sucker_punch (1.5.0)
50
+ celluloid (~> 0.16.0)
48
51
  thread_safe (0.3.4)
49
- timers (1.1.0)
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
@@ -1,5 +1,5 @@
1
1
  module Salemove
2
2
  module ProcessHandler
3
- VERSION = '0.1.3'
3
+ VERSION = '0.1.4'
4
4
  end
5
5
  end
@@ -20,4 +20,5 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency 'airbrake'
22
22
  spec.add_dependency 'sucker_punch', '~> 1.1' # for async airbrake notifications
23
+ spec.add_dependency 'growl'
23
24
  end
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.3
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-05-18 00:00:00.000000000 Z
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