slnky 0.12.4 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/slnky.rb +4 -2
- data/lib/slnky/brain.rb +71 -0
- data/lib/slnky/command/response.rb +0 -1
- data/lib/slnky/service.rb +2 -5
- data/lib/slnky/version.rb +1 -1
- data/slnky.gemspec +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3c1ed8013e3e37e78007da5f7ea94fb8a184e38
|
4
|
+
data.tar.gz: 116c7139be8b7476587bd148cddf676960f1c71d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5566ee1d01a4abec62e40070e9597241623a37308a3970a865af544d13e5e00a5be37167989f2a214963640427055824c6a43f9d42a2ad8a3cc7ff9a33804b31
|
7
|
+
data.tar.gz: eda9b8ba0146900f2463c34aed0e05ba3279047fdf7085b57e39b1a49450dee4530d4b6685d1f9a65d403045e9b10361b78742f8727f95a7c223901484297107
|
data/lib/slnky.rb
CHANGED
@@ -9,6 +9,7 @@ require 'slnky/config'
|
|
9
9
|
require 'slnky/log'
|
10
10
|
require 'slnky/system'
|
11
11
|
require 'slnky/message'
|
12
|
+
require 'slnky/brain'
|
12
13
|
require 'slnky/transport'
|
13
14
|
require 'slnky/service'
|
14
15
|
require 'slnky/client'
|
@@ -21,8 +22,9 @@ module Slnky
|
|
21
22
|
end
|
22
23
|
|
23
24
|
def heartbeat(name)
|
24
|
-
server = ENV['SLNKY_URL'] || Slnky.config.url
|
25
|
-
RestClient.post "#{server}/hooks/heartbeat", {name: name}, content_type: :json, accept: :json
|
25
|
+
# server = ENV['SLNKY_URL'] || Slnky.config.url
|
26
|
+
# RestClient.post "#{server}/hooks/heartbeat", {name: name}, content_type: :json, accept: :json
|
27
|
+
Slnky.brain.hset(:heartbeat, name, Time.now.to_i)
|
26
28
|
end
|
27
29
|
|
28
30
|
def notify(msg)
|
data/lib/slnky/brain.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'redis'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
module Slnky
|
5
|
+
class << self
|
6
|
+
def brain
|
7
|
+
Slnky::Brain::Base.instance
|
8
|
+
end
|
9
|
+
end
|
10
|
+
module Brain
|
11
|
+
class Base
|
12
|
+
class << self
|
13
|
+
def instance
|
14
|
+
@brain ||= self.new(Slnky.config.redis.to_h)
|
15
|
+
end
|
16
|
+
|
17
|
+
def connect(config)
|
18
|
+
@brain = self.new(config)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def initialize(redis={})
|
23
|
+
@options = {
|
24
|
+
host: '127.0.0.1',
|
25
|
+
port: 6379,
|
26
|
+
user: nil,
|
27
|
+
pass: nil,
|
28
|
+
db: '15'
|
29
|
+
}
|
30
|
+
@options.merge!(redis) if redis
|
31
|
+
userpass = @options[:user] ? "#{@options[:user]}:#{@options[:pass]}" : ''
|
32
|
+
@redis = Redis.new(url: "redis://#{userpass}#{@options[:host]}:#{@options[:port]}/#{@options[:db]}")
|
33
|
+
end
|
34
|
+
|
35
|
+
# def keys(pattern='*')
|
36
|
+
# @redis.keys(pattern)
|
37
|
+
# end
|
38
|
+
#
|
39
|
+
# def set(key, value)
|
40
|
+
# @redis.set key, value.is_a?(String) ? value : value.to_json
|
41
|
+
# end
|
42
|
+
#
|
43
|
+
# def get(key)
|
44
|
+
# val = @redis.get key
|
45
|
+
# begin
|
46
|
+
# JSON.parse(val)
|
47
|
+
# rescue
|
48
|
+
# val
|
49
|
+
# end
|
50
|
+
# end
|
51
|
+
|
52
|
+
def hset(key, field, value)
|
53
|
+
@redis.hset("slnky.#{key}", field, value.is_a?(String) ? value : value.to_json)
|
54
|
+
end
|
55
|
+
|
56
|
+
def hget(key, field)
|
57
|
+
val = @redis.hget("slnky.#{key}", field)
|
58
|
+
begin
|
59
|
+
JSON.parse(val)
|
60
|
+
rescue
|
61
|
+
val
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def hgetall(key)
|
66
|
+
keys = @redis.hkeys("slnky.#{key}")
|
67
|
+
keys.inject({}) {|h, e| h[e] = hget(key, e); h}
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/lib/slnky/service.rb
CHANGED
@@ -24,7 +24,7 @@ module Slnky
|
|
24
24
|
subscriber.add "slnky.#{name}.command", :handle_command
|
25
25
|
subscriber.add "slnky.help.command", :handle_command
|
26
26
|
subscriber.add "slnky.service.restart", :handle_restart
|
27
|
-
timers.add 5.seconds, :handle_heartbeat unless config.development?
|
27
|
+
timers.add 5.seconds, :handle_heartbeat # unless config.development?
|
28
28
|
|
29
29
|
subscriber.each do |name, method|
|
30
30
|
log.info "subscribed to: #{name} -> #{self.class.name}.#{method}"
|
@@ -47,11 +47,8 @@ module Slnky
|
|
47
47
|
end
|
48
48
|
|
49
49
|
def handle_heartbeat
|
50
|
-
|
50
|
+
# log.debug "heartbeat #{name}"
|
51
51
|
Slnky.heartbeat(name)
|
52
|
-
rescue => e
|
53
|
-
log.info "could not post heartbeat, server down? #{e.message}"
|
54
|
-
@server_down = true
|
55
52
|
end
|
56
53
|
|
57
54
|
def subscriber
|
data/lib/slnky/version.rb
CHANGED
data/slnky.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slnky
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shawn Catanzarite
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -192,6 +192,20 @@ dependencies:
|
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: 0.7.7
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: redis
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '3.2'
|
202
|
+
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '3.2'
|
195
209
|
description: core slnky lib and command line
|
196
210
|
email:
|
197
211
|
- me@shawncatz.com
|
@@ -216,6 +230,7 @@ files:
|
|
216
230
|
- lib/capistrano/slnky/templates/upstart.conf.erb
|
217
231
|
- lib/capistrano/tasks/slnky.rake
|
218
232
|
- lib/slnky.rb
|
233
|
+
- lib/slnky/brain.rb
|
219
234
|
- lib/slnky/cli.rb
|
220
235
|
- lib/slnky/cli/command.rb
|
221
236
|
- lib/slnky/cli/generate.rb
|