gt06_server 0.1.1 → 0.1.2

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