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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7cfe54e170e8248c911458a77b5d73c0c2c3640e
4
- data.tar.gz: 285c09739886dc2383e5109e5d403a62e5261646
3
+ metadata.gz: b3c1ed8013e3e37e78007da5f7ea94fb8a184e38
4
+ data.tar.gz: 116c7139be8b7476587bd148cddf676960f1c71d
5
5
  SHA512:
6
- metadata.gz: b8188e6017231bd395507e9fc6583277001bccf1bda16c78fe6e5a8600f2bb2deb804ae7b30c5158e66f706bf82e6ce8f351958e7ffdac3267b17dc925a0b54c
7
- data.tar.gz: 614be9e8493f7b11dfa4f9e66d2bf30d7caa0357dfb9ffa50c26eaa518739cbc5991674b3c4d246779c2a0966bbd2ef35cf7588a5cea90832c960cd498c7f19b
6
+ metadata.gz: 5566ee1d01a4abec62e40070e9597241623a37308a3970a865af544d13e5e00a5be37167989f2a214963640427055824c6a43f9d42a2ad8a3cc7ff9a33804b31
7
+ data.tar.gz: eda9b8ba0146900f2463c34aed0e05ba3279047fdf7085b57e39b1a49450dee4530d4b6685d1f9a65d403045e9b10361b78742f8727f95a7c223901484297107
@@ -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)
@@ -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
@@ -8,7 +8,6 @@ module Slnky
8
8
  if route =~ /\:/
9
9
  (route, reply) = route.split(':', 2)
10
10
  end
11
- puts "ROUTE: #{route} #{reply}"
12
11
  @route = route
13
12
  @reply = reply
14
13
  @service = Slnky::System.pid
@@ -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
- return if @server_down
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
@@ -1,3 +1,3 @@
1
1
  module Slnky
2
- VERSION = "0.12.4"
2
+ VERSION = "0.13.0"
3
3
  end
@@ -41,4 +41,5 @@ Gem::Specification.new do |spec|
41
41
  spec.add_dependency 'docopt', '~> 0.5.0'
42
42
  spec.add_dependency 'highline', '~> 1.7.8'
43
43
  spec.add_dependency 'colorize', '~> 0.7.7'
44
+ spec.add_dependency 'redis', '~> 3.2'
44
45
  end
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.12.4
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-22 00:00:00.000000000 Z
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