gt06_server 0.1.1 → 0.1.2

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: f12a3c78a38d0f2659079dfc62d07f9756e3a4e7
4
- data.tar.gz: a048b7445c62b87426d7440b083e5f1f6444e706
3
+ metadata.gz: 65de6007ff4e6820923d218b8b1fa456e9d959c0
4
+ data.tar.gz: 48924b53a835183b0c498fe10289432bbc26cc3f
5
5
  SHA512:
6
- metadata.gz: b4f53cf7c2aa00e4f928a11c7f6120404ec14525a85b2c76b1b4116af5d021365768be9ce948eb55e8844d29404c0253069b716677ade4dfee7b2d6d855d5e22
7
- data.tar.gz: 735f96064b0b2ce293eb88b16fef63101aa0ba25fc7ac9b74105e8967075b4c46b4e3b58255feafb6adeda4122838cd504deacb5d56be9df7e59d4eac0ca6e67
6
+ metadata.gz: 9d8340f677b22d7f87432f0d2722db738745f264a5ce6ecf9ef71749d0107ad7001ba0481a49b15bc8568de137127f423b60908fe73a1aafcf39f634cc67faae
7
+ data.tar.gz: f0856270a9b4e8a156a85ae6e0e6f38b6ce79483d70bb939dd7f388202a6e3334fdc59880d9a732b17fcc32102063af49ac5f35e242eff558838b009cd514636
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gt06_server (0.1.0)
4
+ gt06_server (0.1.1)
5
5
  bindata (~> 2.3)
6
6
  celluloid-io (~> 0.17.3)
7
7
  concurrent-ruby (~> 1.0)
@@ -1,55 +1,57 @@
1
1
  require 'concurrent'
2
+ module Gt06Server
3
+ class SessionSweeper
4
+ attr_reader :sessions , :info, :timeout, :interval, :logger
5
+
6
+ # @param sessions[Array<Session>]
7
+ def initialize(sessions, timeout = 60, interval: 30, logger: Logger.new(STDOUT))
8
+ @sessions = sessions
9
+ @timeout = timeout || 60
10
+ @interval = interval || 30
11
+ @info = {killed: 0, live:0, count:0}
12
+ @logger = logger
13
+ end
2
14
 
3
- class SessionSweeper
4
- attr_reader :sessions , :info, :timeout, :interval, :logger
15
+ def run
16
+ timer = Concurrent::TimerTask.new(execution_interval: @interval) do
17
+ time_now = Time.now
18
+ @sessions.each_pair do |key, session|
19
+ if (session.info[:last_received_at] + @timeout) < time_now
20
+ session.io.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, [1,0].pack('ii'))
21
+ session.io.close
5
22
 
6
- def initialize(sessions, timeout = 60, interval: 30, logger: Logger.new(STDOUT))
7
- @sessions = sessions
8
- @timeout = timeout
9
- @interval = interval
10
- @info = {killed: 0, live:0, count:0}
11
- @logger = logger
12
- end
23
+ @logger.debug "Session #{session.inspect} has been closed"
13
24
 
14
- def run
15
- timer = Concurrent::TimerTask.new(execution_interval: @interval) do
16
- time_now = Time.now
17
- @sessions.each_pair do |key, session|
18
- if (session.info[:last_received_at] + @timeout) < time_now
19
- session.io.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER, [1,0].pack('ii'))
20
- session.io.close
25
+ @info[:killed] += 1
26
+ @sessions.delete(key)
27
+ end
28
+ end
21
29
 
22
- @logger.debug "Session #{session.inspect} has been closed"
30
+ @info[:live] = @sessions.size
31
+ @info[:count] += 1
23
32
 
24
- @info[:killed] += 1
25
- @sessions.delete(key)
26
- end
33
+ @info
27
34
  end
28
35
 
29
- @info[:live] = @sessions.size
30
- @info[:count] += 1
31
-
32
- @info
36
+ timer.add_observer(SessionSweeperObserver.new(@logger))
37
+ timer.execute
33
38
  end
34
39
 
35
- timer.add_observer(SessionSweeperObserver.new(@logger))
36
- timer.execute
37
- end
38
-
39
- class SessionSweeperObserver
40
- def initialize(logger)
41
- @logger = logger
42
- end
40
+ class SessionSweeperObserver
41
+ def initialize(logger)
42
+ @logger = logger
43
+ end
43
44
 
44
- def update(time, result, exception)
45
- if result
46
- @logger.info "(#{time}) Execution successfully returned #{result}"
47
- else
48
- @logger.error "(#{time}) Execution failed with error #{exception}"
49
- @logger.error "(#{time}) #{exception.backtrace}"
50
- # Airbrake.notify(exception)
45
+ def update(time, result, exception)
46
+ if result
47
+ @logger.info "(#{time}) Execution successfully returned #{result}"
48
+ else
49
+ @logger.error "(#{time}) Execution failed with error #{exception}"
50
+ @logger.error "(#{time}) #{exception.backtrace}"
51
+ # Airbrake.notify(exception)
52
+ end
51
53
  end
52
54
  end
53
- end
54
55
 
56
+ end
55
57
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Gt06Server
3
- VERSION = '0.1.1'
3
+ VERSION = '0.1.2'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gt06_server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - CoolElvis