run_rabbit_run 0.1.0 → 0.1.1
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.
@@ -20,7 +20,7 @@ module RunRabbitRun
|
|
20
20
|
raise "The process [#{@name}] is already running"
|
21
21
|
end
|
22
22
|
|
23
|
-
RunRabbitRun.
|
23
|
+
RunRabbitRun.local_logger.info "[#{@name}] process starting"
|
24
24
|
|
25
25
|
@pid = fork do
|
26
26
|
$0 = "[ruby] [RunRabbitRun] #{@name}"
|
@@ -52,7 +52,7 @@ module RunRabbitRun
|
|
52
52
|
@starting = false
|
53
53
|
end
|
54
54
|
|
55
|
-
RunRabbitRun.
|
55
|
+
RunRabbitRun.local_logger.info "[#{@name}] process finished"
|
56
56
|
end
|
57
57
|
|
58
58
|
Process.detach(@pid)
|
@@ -34,10 +34,10 @@ module RunRabbitRun
|
|
34
34
|
|
35
35
|
def send_signal name, pid, signal
|
36
36
|
if running? pid
|
37
|
-
RunRabbitRun.
|
37
|
+
RunRabbitRun.local_logger.info "[#{name}] send #{signal_name(signal)} signal to process"
|
38
38
|
Process.kill(signal, pid)
|
39
39
|
else
|
40
|
-
RunRabbitRun.
|
40
|
+
RunRabbitRun.local_logger.debug "[#{name}] is not running"
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
data/lib/run_rabbit_run.rb
CHANGED
@@ -4,6 +4,7 @@ require 'amqp'
|
|
4
4
|
require 'bson'
|
5
5
|
require 'json'
|
6
6
|
require 'logger'
|
7
|
+
require 'socket'
|
7
8
|
|
8
9
|
module RunRabbitRun
|
9
10
|
require 'run_rabbit_run/master'
|
@@ -24,7 +25,11 @@ module RunRabbitRun
|
|
24
25
|
end
|
25
26
|
|
26
27
|
def logger
|
27
|
-
@@logger ||=
|
28
|
+
@@logger ||= MQLogger.new
|
29
|
+
end
|
30
|
+
|
31
|
+
def local_logger
|
32
|
+
@@local_logger ||= begin
|
28
33
|
path = self.config[:log]
|
29
34
|
|
30
35
|
FileUtils.mkdir_p(File.dirname(path)) unless File.exists?(File.dirname(path))
|
@@ -40,5 +45,39 @@ module RunRabbitRun
|
|
40
45
|
logger
|
41
46
|
end
|
42
47
|
end
|
48
|
+
|
49
|
+
class MQLogger
|
50
|
+
|
51
|
+
def info(message)
|
52
|
+
exchange.publish(_message(message), :routing_key => "info")
|
53
|
+
end
|
54
|
+
|
55
|
+
def error(message)
|
56
|
+
exchange.publish(_message(message), :routing_key => "exception")
|
57
|
+
end
|
58
|
+
|
59
|
+
def debug(message)
|
60
|
+
exchange.publish(_message(message), :routing_key => "debug")
|
61
|
+
end
|
62
|
+
|
63
|
+
def connection
|
64
|
+
@connection ||= AMQP.connect(RunRabbitRun::Config.options[:rabbitmq])
|
65
|
+
end
|
66
|
+
|
67
|
+
def channel
|
68
|
+
@channel ||= AMQP::Channel.new(connection, AMQP::Channel.next_channel_id, auto_recovery: true)
|
69
|
+
end
|
70
|
+
|
71
|
+
def exchange
|
72
|
+
@exchange ||= channel.topic("log")
|
73
|
+
end
|
74
|
+
|
75
|
+
private
|
76
|
+
|
77
|
+
def _message(message)
|
78
|
+
JSON.generate({message: message, host: Socket.gethostname})
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
43
82
|
end
|
44
83
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: run_rabbit_run
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-05-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|