em-nodes 0.2.2 → 0.2.3
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.
- data/benchmark/client.rb +1 -10
- data/benchmark/drb_client.rb +11 -0
- data/benchmark/drb_server.rb +34 -0
- data/benchmark/run_drb.sh +10 -0
- data/benchmark/server.rb +1 -4
- data/lib/em-nodes/client.rb +1 -1
- data/lib/em-nodes/default_client.rb +1 -1
- data/lib/em-nodes/server.rb +2 -0
- data/lib/em-nodes/server/hello.rb +5 -0
- data/lib/em-nodes/version.rb +1 -1
- metadata +96 -71
- checksums.yaml +0 -7
data/benchmark/client.rb
CHANGED
@@ -2,10 +2,7 @@ require 'rubygems'
|
|
2
2
|
require "bundler/setup"
|
3
3
|
Bundler.require
|
4
4
|
|
5
|
-
class Client < EM::Nodes::
|
6
|
-
include HelloFeature
|
7
|
-
include TaskFeature
|
8
|
-
|
5
|
+
class Client < EM::Nodes::DefaultClient
|
9
6
|
def info
|
10
7
|
{ :name => "client" }
|
11
8
|
end
|
@@ -13,15 +10,9 @@ class Client < EM::Nodes::Client
|
|
13
10
|
def on_task(task_id, data)
|
14
11
|
send_task_result(task_id, data + 1)
|
15
12
|
end
|
16
|
-
|
17
|
-
def unbind
|
18
|
-
super
|
19
|
-
EM.stop
|
20
|
-
end
|
21
13
|
end
|
22
14
|
|
23
15
|
EM.run do
|
24
16
|
puts "client run"
|
25
17
|
Client.connect '/tmp/test_em_nodes_sock'
|
26
18
|
end
|
27
|
-
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'drb'
|
2
|
+
|
3
|
+
CLIENTS_COUNT = 5
|
4
|
+
TASKS_COUNT = 100000
|
5
|
+
|
6
|
+
DRb.start_service
|
7
|
+
clients = []
|
8
|
+
CLIENTS_COUNT.times do |i|
|
9
|
+
clients << DRbObject.new(nil, "druby://127.0.0.1:111#{i}")
|
10
|
+
end
|
11
|
+
|
12
|
+
puts "start with clients #{clients.size}"
|
13
|
+
|
14
|
+
$res = 0
|
15
|
+
$res_count = 0
|
16
|
+
$mutex = Mutex.new
|
17
|
+
|
18
|
+
tm = Time.now
|
19
|
+
clients.map do |cl|
|
20
|
+
Thread.new do
|
21
|
+
data = 0
|
22
|
+
loop do
|
23
|
+
data = cl.task(data)
|
24
|
+
$mutex.synchronize do
|
25
|
+
$res_count += 1
|
26
|
+
$res += data
|
27
|
+
if $res_count >= TASKS_COUNT
|
28
|
+
puts "executed with #{Time.now - tm}, res: #{$res}, res_count: #{$res_count}"
|
29
|
+
exit
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end.each &:join
|
data/benchmark/server.rb
CHANGED
data/lib/em-nodes/client.rb
CHANGED
@@ -9,7 +9,6 @@ class EM::Nodes::Client < EM::Connection
|
|
9
9
|
|
10
10
|
def post_init
|
11
11
|
@alive = true
|
12
|
-
EM::Nodes.logger.info { "Connected to server" }
|
13
12
|
end
|
14
13
|
|
15
14
|
def unbind
|
@@ -18,6 +17,7 @@ class EM::Nodes::Client < EM::Connection
|
|
18
17
|
end
|
19
18
|
|
20
19
|
def self.connect(host, port = nil, *args, &block)
|
20
|
+
EM::Nodes.logger.info { "Connecting to server #{host}:#{port}" }
|
21
21
|
EM.connect(host, port, self, *args)
|
22
22
|
end
|
23
23
|
end
|
data/lib/em-nodes/server.rb
CHANGED
@@ -31,6 +31,7 @@ class EM::Nodes::Server < EM::Connection
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def post_init
|
34
|
+
super
|
34
35
|
@data = OpenStruct.new
|
35
36
|
|
36
37
|
self.comm_inactivity_timeout = inactivity_timeout if EM.reactor_running?
|
@@ -49,6 +50,7 @@ class EM::Nodes::Server < EM::Connection
|
|
49
50
|
end
|
50
51
|
|
51
52
|
def unbind
|
53
|
+
super
|
52
54
|
@alive = false
|
53
55
|
self.class.clients.delete self
|
54
56
|
EM::Nodes.logger.info { "Client #{self.data.inspect} has disconnected" }
|
data/lib/em-nodes/version.rb
CHANGED
metadata
CHANGED
@@ -1,78 +1,90 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: em-nodes
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 17
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 3
|
10
|
+
version: 0.2.3
|
5
11
|
platform: ruby
|
6
|
-
authors:
|
7
|
-
- '
|
12
|
+
authors:
|
13
|
+
- "'Konstantin Makarchev'"
|
8
14
|
autorequire:
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
17
|
+
|
18
|
+
date: 2014-05-29 00:00:00 +04:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
requirement: *id001
|
14
33
|
name: eventmachine
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
34
|
type: :runtime
|
35
|
+
- !ruby/object:Gem::Dependency
|
21
36
|
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
|
24
|
-
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: bundler
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
37
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
31
40
|
- - ~>
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 5
|
43
|
+
segments:
|
44
|
+
- 1
|
45
|
+
- 5
|
46
|
+
version: "1.5"
|
47
|
+
requirement: *id002
|
48
|
+
name: bundler
|
34
49
|
type: :development
|
50
|
+
- !ruby/object:Gem::Dependency
|
35
51
|
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
52
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
requirement: *id003
|
42
62
|
name: rake
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
63
|
type: :development
|
64
|
+
- !ruby/object:Gem::Dependency
|
49
65
|
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
66
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
72
|
+
segments:
|
73
|
+
- 0
|
74
|
+
version: "0"
|
75
|
+
requirement: *id004
|
56
76
|
name: rspec
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
77
|
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - '>='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
78
|
description: Simple EM client server, and some stuffs
|
70
|
-
email:
|
71
|
-
- '
|
79
|
+
email:
|
80
|
+
- "'kostya27@gmail.com'"
|
72
81
|
executables: []
|
82
|
+
|
73
83
|
extensions: []
|
84
|
+
|
74
85
|
extra_rdoc_files: []
|
75
|
-
|
86
|
+
|
87
|
+
files:
|
76
88
|
- .gitignore
|
77
89
|
- .rspec
|
78
90
|
- Gemfile
|
@@ -80,7 +92,10 @@ files:
|
|
80
92
|
- README.md
|
81
93
|
- Rakefile
|
82
94
|
- benchmark/client.rb
|
95
|
+
- benchmark/drb_client.rb
|
96
|
+
- benchmark/drb_server.rb
|
83
97
|
- benchmark/run.sh
|
98
|
+
- benchmark/run_drb.sh
|
84
99
|
- benchmark/server.rb
|
85
100
|
- em-nodes.gemspec
|
86
101
|
- examples/chat_client.rb
|
@@ -104,31 +119,41 @@ files:
|
|
104
119
|
- spec/simple_spec.rb
|
105
120
|
- spec/spec_helper.rb
|
106
121
|
- spec/task_spec.rb
|
122
|
+
has_rdoc: true
|
107
123
|
homepage: https://github.com/kostya/em-nodes
|
108
|
-
licenses:
|
124
|
+
licenses:
|
109
125
|
- MIT
|
110
|
-
metadata: {}
|
111
126
|
post_install_message:
|
112
127
|
rdoc_options: []
|
113
|
-
|
128
|
+
|
129
|
+
require_paths:
|
114
130
|
- lib
|
115
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
131
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
hash: 3
|
137
|
+
segments:
|
138
|
+
- 0
|
139
|
+
version: "0"
|
140
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
hash: 3
|
146
|
+
segments:
|
147
|
+
- 0
|
148
|
+
version: "0"
|
125
149
|
requirements: []
|
150
|
+
|
126
151
|
rubyforge_project:
|
127
|
-
rubygems_version:
|
152
|
+
rubygems_version: 1.4.2
|
128
153
|
signing_key:
|
129
|
-
specification_version:
|
154
|
+
specification_version: 3
|
130
155
|
summary: Simple EM client server, and some stuffs
|
131
|
-
test_files:
|
156
|
+
test_files:
|
132
157
|
- spec/base_spec.rb
|
133
158
|
- spec/hello_spec.rb
|
134
159
|
- spec/simple2_spec.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 2a95a56a414282e8e364694da3c4c6047a0aabac
|
4
|
-
data.tar.gz: 8b48fd301eb081c7d35346f07aac1e30581a5a26
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 60ed94305f6d7009fe10130dc252e740e896f472719300c660b8cf01c9b93a6b39dfb8178f3ee15c76206c8eb2b5a2f55ba0c715153ec75c24e9eff324c3a9be
|
7
|
-
data.tar.gz: af1caadc1bace8f2a75dc7d59fb09262456810fa711ff13637208d7d248d51e542db3c7cf91621ce41a97cbba0e33a98c72a3c1167eb5995672e0ba835b7643a
|