drbqs 0.0.0
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/.document +5 -0
- data/.rspec +1 -0
- data/Gemfile +14 -0
- data/LICENSE.txt +674 -0
- data/README.rdoc +19 -0
- data/Rakefile +43 -0
- data/VERSION +1 -0
- data/lib/drbqs.rb +12 -0
- data/lib/drbqs/client.rb +44 -0
- data/lib/drbqs/connection.rb +35 -0
- data/lib/drbqs/message.rb +92 -0
- data/lib/drbqs/queue.rb +96 -0
- data/lib/drbqs/server.rb +106 -0
- data/lib/drbqs/task_client.rb +44 -0
- data/spec/drbqs_spec.rb +7 -0
- data/spec/spec_helper.rb +12 -0
- metadata +130 -0
@@ -0,0 +1,44 @@
|
|
1
|
+
module DRbQS
|
2
|
+
class TaskClient
|
3
|
+
def initialize(node_id, queue, result, logger = nil)
|
4
|
+
@node_id = node_id
|
5
|
+
@queue = queue
|
6
|
+
@result = result
|
7
|
+
@calculating_task = nil
|
8
|
+
@task_queue = Queue.new
|
9
|
+
@result_queue = Queue.new
|
10
|
+
@logger = logger
|
11
|
+
end
|
12
|
+
|
13
|
+
def add_new_task
|
14
|
+
unless @calculating_task
|
15
|
+
begin
|
16
|
+
task_id, obj, method_sym, args = @queue.take([Fixnum, nil, Symbol, nil], 0)
|
17
|
+
@calculating_task = task_id
|
18
|
+
@task_queue.enq([obj, method_sym, args])
|
19
|
+
@result.write([:accept, task_id, @node_id])
|
20
|
+
rescue
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def send_result
|
26
|
+
if @result_queue.size > 0
|
27
|
+
result = @result_queue.deq
|
28
|
+
@logger.info("Send result: #{@calculating_task}") { result.inspect } if @logger
|
29
|
+
@result.write([:result, @calculating_task, result])
|
30
|
+
@calculating_task = nil
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def get
|
35
|
+
@task_queue.deq
|
36
|
+
end
|
37
|
+
|
38
|
+
def transmit(result)
|
39
|
+
@result_queue.enq(result)
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
data/spec/drbqs_spec.rb
ADDED
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
+
require 'rspec'
|
4
|
+
require 'drbqs'
|
5
|
+
|
6
|
+
# Requires supporting files with custom matchers and macros, etc,
|
7
|
+
# in ./support/ and its subdirectories.
|
8
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,130 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: drbqs
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Takayuki YAMAGUCHI
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-02-22 00:00:00 +09:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: rspec
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 2.5.0
|
24
|
+
type: :development
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: yard
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
+
none: false
|
31
|
+
requirements:
|
32
|
+
- - ~>
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: 0.6.0
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: bundler
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.0.0
|
46
|
+
type: :development
|
47
|
+
prerelease: false
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: jeweler
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ~>
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.5.2
|
57
|
+
type: :development
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: *id004
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: rcov
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: "0"
|
68
|
+
type: :development
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: *id005
|
71
|
+
description: Queuing system over network that is implemented by dRuby.
|
72
|
+
email: d@ytak.info
|
73
|
+
executables: []
|
74
|
+
|
75
|
+
extensions: []
|
76
|
+
|
77
|
+
extra_rdoc_files:
|
78
|
+
- LICENSE.txt
|
79
|
+
- README.rdoc
|
80
|
+
files:
|
81
|
+
- .document
|
82
|
+
- .rspec
|
83
|
+
- Gemfile
|
84
|
+
- LICENSE.txt
|
85
|
+
- README.rdoc
|
86
|
+
- Rakefile
|
87
|
+
- VERSION
|
88
|
+
- lib/drbqs.rb
|
89
|
+
- lib/drbqs/client.rb
|
90
|
+
- lib/drbqs/connection.rb
|
91
|
+
- lib/drbqs/message.rb
|
92
|
+
- lib/drbqs/queue.rb
|
93
|
+
- lib/drbqs/server.rb
|
94
|
+
- lib/drbqs/task_client.rb
|
95
|
+
- spec/drbqs_spec.rb
|
96
|
+
- spec/spec_helper.rb
|
97
|
+
has_rdoc: true
|
98
|
+
homepage: http://github.com/ytaka/drbqs
|
99
|
+
licenses:
|
100
|
+
- GPL3
|
101
|
+
post_install_message:
|
102
|
+
rdoc_options: []
|
103
|
+
|
104
|
+
require_paths:
|
105
|
+
- lib
|
106
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ">="
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
hash: 4249913023693362240
|
112
|
+
segments:
|
113
|
+
- 0
|
114
|
+
version: "0"
|
115
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: "0"
|
121
|
+
requirements: []
|
122
|
+
|
123
|
+
rubyforge_project:
|
124
|
+
rubygems_version: 1.5.2
|
125
|
+
signing_key:
|
126
|
+
specification_version: 3
|
127
|
+
summary: dRuby Queueing System
|
128
|
+
test_files:
|
129
|
+
- spec/drbqs_spec.rb
|
130
|
+
- spec/spec_helper.rb
|