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 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