protein 0.1.0 → 0.2.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: 640ce556cbb7f7709579ad076cd242880081d3bd
4
- data.tar.gz: 682c86726085e8ab7c794a2bea141726a718edf9
3
+ metadata.gz: 3c6dfac5e16391f182c40d822c356770a07e2a1a
4
+ data.tar.gz: fb8dda9c4fa2ad86351bab6478b9315edc6a0522
5
5
  SHA512:
6
- metadata.gz: d1015ee49c77d00f0e16d9816f2f80a05d36750844482c9fc1d0a4ef54658e534816b41c3749ee2d39f59ae6ae77fb2c3312567060c46bcb1df768541b0e2497
7
- data.tar.gz: 41d4c03428c44c138ff8e9be1a7d2161393c0ab6cc9c610a58feefd7bcffcbd9951f166ea565a01b4dca48192167b5fb98f40d12b14d163dcbc932bddbdb390e
6
+ metadata.gz: e590ba3aa43770856f8e42b8713b02c0d6b2fb4fddd7bc49aeed7470b6465a511a84b740c3c2811d41fd981216f05d71f838bbfcc3b3ea6a742ee02f106d66c5
7
+ data.tar.gz: de08e7f29a2bda074a13e99b06b3eabc9f18081ffe5ed63065c5f13e8116bd8968b7a8cfc11ed4b5b5edd4e9706cb8f1ca51604c2ebd7d5c08f8d71b954ee6c4
@@ -1,3 +1,5 @@
1
+ require 'parallel'
2
+
1
3
  module Protein
2
4
  class Server
3
5
  class << self
@@ -14,6 +16,11 @@ class Server
14
16
  GetConst.call(@router)
15
17
  end
16
18
 
19
+ def config(config = nil)
20
+ @config = (@config || {}).merge(config) if config
21
+ @config || {}
22
+ end
23
+
17
24
  def transport(transport, opts = {})
18
25
  @transport_class = Transport.define(transport, opts)
19
26
  end
@@ -23,7 +30,16 @@ class Server
23
30
  end
24
31
 
25
32
  def start
26
- transport_class.serve(router)
33
+ worker_count = config.fetch(:concurrency, 5)
34
+
35
+ if worker_count.is_a?(Integer) && worker_count > 1
36
+ Parallel.each(1..worker_count, in_processes: worker_count) do |worker|
37
+ Rails.logger.info "Starting server #{worker}/#{worker_count} with PID #{Process.pid}"
38
+ transport_class.serve(router)
39
+ end
40
+ else
41
+ transport_class.serve(router)
42
+ end
27
43
  end
28
44
  end
29
45
  end
@@ -1,3 +1,3 @@
1
1
  module Protein
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: protein
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Karol Słuszniak
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-12 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2017-10-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: parallel
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.0
13
27
  description:
14
28
  email: karol@shedul.com
15
29
  executables: []