drbqs 0.0.6 → 0.0.7
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/README.rdoc +56 -5
- data/VERSION +1 -1
- data/drbqs.gemspec +6 -3
- data/example/server/server_def.rb +12 -0
- data/example/sum/server_def.rb +1 -1
- data/lib/drbqs/server.rb +28 -19
- data/lib/drbqs/server_hook.rb +67 -0
- data/lib/drbqs/task_generator.rb +21 -8
- data/spec/manage_spec.rb +1 -1
- data/spec/server_define_spec.rb +1 -1
- data/spec/server_hook_spec.rb +72 -0
- data/spec/task_generator_spec.rb +10 -1
- data/spec/test1_spec.rb +1 -1
- data/spec/test2_spec.rb +2 -8
- metadata +23 -43
data/README.rdoc
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
Task queuing system over network that is implemented by dRuby.
|
4
4
|
|
5
|
+
== Requirements
|
6
|
+
|
7
|
+
DRbQS uses Fiber, so ruby requires version 1.9.
|
8
|
+
|
5
9
|
== Usage
|
6
10
|
|
7
11
|
=== Preparation
|
@@ -30,21 +34,68 @@ We make server.rb as the following.
|
|
30
34
|
|
31
35
|
require_relative 'sum.rb'
|
32
36
|
|
33
|
-
DRbQS.define_server do |server, argv, opts|
|
37
|
+
DRbQS.define_server(:finish_exit => true) do |server, argv, opts|
|
34
38
|
10.step(100, 10) do |i|
|
35
39
|
task = DRbQS::Task.new(Sum.new(i - 10, i), :exec)
|
36
40
|
server.queue.add(task)
|
37
41
|
end
|
38
|
-
|
39
|
-
server.set_finish_hook do |serv|
|
40
|
-
serv.exit
|
41
|
-
end
|
42
42
|
end
|
43
43
|
|
44
44
|
In terminal, we load server.rb and execute server of drbqs.
|
45
45
|
|
46
46
|
drbqs-server server.rb -p 13500
|
47
47
|
|
48
|
+
=== Hook of server
|
49
|
+
|
50
|
+
We can use two hooks of server: 'empty_queue' and 'finish'.
|
51
|
+
|
52
|
+
DRbQS.define_server do |server, argv, opts|
|
53
|
+
server.add_hook(:empty_queue) do |srv|
|
54
|
+
srm.queue.add( ... )
|
55
|
+
end
|
56
|
+
|
57
|
+
server.add_hook(:finish) do |srv|
|
58
|
+
srm.exit
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
'finish' hook usually exit server program, but
|
63
|
+
an option :finish_exit for DRbQS.define_server or DRbQS.new
|
64
|
+
is nearly same.
|
65
|
+
|
66
|
+
We can use 'empty_queue' hook for adding tasks
|
67
|
+
when task queue is empty.
|
68
|
+
|
69
|
+
=== Task generator
|
70
|
+
|
71
|
+
Arguments of DRbQS::TaskGenerator.new define instance variables.
|
72
|
+
|
73
|
+
task_generator = DRbQS::TaskGenerator.new(:abc => 'ABC', :def => 123, :data => [1, 2, 3])
|
74
|
+
|
75
|
+
The above example defines the following instance variables.
|
76
|
+
|
77
|
+
@abc = 'ABC'
|
78
|
+
@def = 123
|
79
|
+
@data = [1, 2, 3]
|
80
|
+
|
81
|
+
Then, DRbQS::TaskGenerator#set method defines generation of tasks.
|
82
|
+
The block of the method is evaluated in the context of task_generator.
|
83
|
+
For the above example we can use @abc, @def, and @data.
|
84
|
+
|
85
|
+
task_generator.set do
|
86
|
+
@data.each do |i|
|
87
|
+
create_add_task(i, :to_s)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
DRbQS::TaskGenerator#create_add_task creates a task
|
92
|
+
and the task is returned by DRbQS::TaskGenerator#new_tasks.
|
93
|
+
The arguments of DRbQS::TaskGenerator#create_add_task is
|
94
|
+
the same as DRbQS::Task.new.
|
95
|
+
|
96
|
+
To use the generator in DRbQS::Server,
|
97
|
+
we set the generator by DRbQS::Server#add_task_generator.
|
98
|
+
|
48
99
|
=== Start node and connect server
|
49
100
|
|
50
101
|
Because nodes needs class Sum,
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.7
|
data/drbqs.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{drbqs}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Takayuki YAMAGUCHI"]
|
@@ -33,6 +33,7 @@ Gem::Specification.new do |s|
|
|
33
33
|
"example/drbqs-manage-test.rb",
|
34
34
|
"example/drbqs-node-test.rb",
|
35
35
|
"example/drbqs-server-test.rb",
|
36
|
+
"example/server/server_def.rb",
|
36
37
|
"example/sum/server_def.rb",
|
37
38
|
"example/sum/sum.rb",
|
38
39
|
"lib/drbqs.rb",
|
@@ -45,6 +46,7 @@ Gem::Specification.new do |s|
|
|
45
46
|
"lib/drbqs/queue.rb",
|
46
47
|
"lib/drbqs/server.rb",
|
47
48
|
"lib/drbqs/server_define.rb",
|
49
|
+
"lib/drbqs/server_hook.rb",
|
48
50
|
"lib/drbqs/task.rb",
|
49
51
|
"lib/drbqs/task_client.rb",
|
50
52
|
"lib/drbqs/task_generator.rb",
|
@@ -56,6 +58,7 @@ Gem::Specification.new do |s|
|
|
56
58
|
"spec/node_list_spec.rb",
|
57
59
|
"spec/queue_spec.rb",
|
58
60
|
"spec/server_define_spec.rb",
|
61
|
+
"spec/server_hook_spec.rb",
|
59
62
|
"spec/server_spec.rb",
|
60
63
|
"spec/spec_helper.rb",
|
61
64
|
"spec/task_client_spec.rb",
|
@@ -68,7 +71,7 @@ Gem::Specification.new do |s|
|
|
68
71
|
s.homepage = %q{http://github.com/ytaka/drbqs}
|
69
72
|
s.licenses = ["GPL3"]
|
70
73
|
s.require_paths = ["lib"]
|
71
|
-
s.rubygems_version = %q{1.
|
74
|
+
s.rubygems_version = %q{1.6.1}
|
72
75
|
s.summary = %q{dRuby Queueing System}
|
73
76
|
s.test_files = [
|
74
77
|
"spec/acl_file_spec.rb",
|
@@ -78,6 +81,7 @@ Gem::Specification.new do |s|
|
|
78
81
|
"spec/node_list_spec.rb",
|
79
82
|
"spec/queue_spec.rb",
|
80
83
|
"spec/server_define_spec.rb",
|
84
|
+
"spec/server_hook_spec.rb",
|
81
85
|
"spec/server_spec.rb",
|
82
86
|
"spec/spec_helper.rb",
|
83
87
|
"spec/task_client_spec.rb",
|
@@ -89,7 +93,6 @@ Gem::Specification.new do |s|
|
|
89
93
|
]
|
90
94
|
|
91
95
|
if s.respond_to? :specification_version then
|
92
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
93
96
|
s.specification_version = 3
|
94
97
|
|
95
98
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
@@ -0,0 +1,12 @@
|
|
1
|
+
task_generator = DRbQS::TaskGenerator.new(:iterate => 3)
|
2
|
+
task_generator.set do
|
3
|
+
5.times do |i|
|
4
|
+
create_add_task(i, :to_s)
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
server = DRbQS::Server.new(:port => 13501, :finish_exit => true)
|
9
|
+
server.add_task_generator(task_generator)
|
10
|
+
server.set_signal_trap
|
11
|
+
server.start
|
12
|
+
server.wait
|
data/example/sum/server_def.rb
CHANGED
data/lib/drbqs/server.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'drbqs/message'
|
2
2
|
require 'drbqs/queue'
|
3
3
|
require 'drbqs/acl_file'
|
4
|
+
require 'drbqs/server_hook'
|
4
5
|
|
5
6
|
module DRbQS
|
6
7
|
class CheckAlive
|
@@ -24,10 +25,19 @@ module DRbQS
|
|
24
25
|
attr_reader :queue
|
25
26
|
|
26
27
|
# :port
|
28
|
+
# Set the port of server.
|
27
29
|
# :acl
|
30
|
+
# Set the ACL instance.
|
28
31
|
# :log_file
|
32
|
+
# Set the path of log files.
|
29
33
|
# :log_level
|
34
|
+
# Set the level of logging.
|
30
35
|
# :check_alive
|
36
|
+
# Set the time interval of checking alive nodes.
|
37
|
+
# :finish_exit
|
38
|
+
# Exit programs in finish_hook.
|
39
|
+
# :signal_trap
|
40
|
+
# Set trapping signal.
|
31
41
|
def initialize(opts = {})
|
32
42
|
@port = opts[:port] || ROOT_DEFAULT_PORT
|
33
43
|
@acl = acl_init(opts[:acl])
|
@@ -46,7 +56,8 @@ module DRbQS
|
|
46
56
|
@queue= QueueServer.new(@ts[:queue], @ts[:result], @logger)
|
47
57
|
@check_alive = CheckAlive.new(opts[:check_alive])
|
48
58
|
@task_generator = []
|
49
|
-
|
59
|
+
hook_init(opts[:finish_exit])
|
60
|
+
set_signal_trap if opts[:signal_trap]
|
50
61
|
end
|
51
62
|
|
52
63
|
def acl_init(acl_arg)
|
@@ -61,6 +72,12 @@ module DRbQS
|
|
61
72
|
end
|
62
73
|
private :acl_init
|
63
74
|
|
75
|
+
def hook_init(finish_exit)
|
76
|
+
@hook = DRbQS::ServerHook.new
|
77
|
+
@hook.set_finish_exit { self.exit } if finish_exit
|
78
|
+
end
|
79
|
+
private :hook_init
|
80
|
+
|
64
81
|
def start
|
65
82
|
DRb.install_acl(@acl) if @acl
|
66
83
|
uri = "druby://:#{@port}"
|
@@ -77,7 +94,7 @@ module DRbQS
|
|
77
94
|
end
|
78
95
|
private :check_connection
|
79
96
|
|
80
|
-
def
|
97
|
+
def add_task_generator(task_generator)
|
81
98
|
@task_generator << task_generator
|
82
99
|
end
|
83
100
|
|
@@ -101,33 +118,25 @@ module DRbQS
|
|
101
118
|
@message.set_initialization(task)
|
102
119
|
end
|
103
120
|
|
121
|
+
# +key+ is :empty_queue or :finish_exit.
|
104
122
|
# &block takes self as an argument.
|
105
|
-
def
|
106
|
-
|
107
|
-
@empty_queue_hook = block
|
108
|
-
else
|
109
|
-
@empty_queue_hook = nil
|
110
|
-
end
|
123
|
+
def add_hook(key, name = nil, &block)
|
124
|
+
@hook.add(key, name, &block)
|
111
125
|
end
|
112
126
|
|
113
|
-
|
114
|
-
|
115
|
-
if block_given?
|
116
|
-
@finish_hook = block
|
117
|
-
else
|
118
|
-
@finish_hook = nil
|
119
|
-
end
|
127
|
+
def delete_hook(key, name = nil)
|
128
|
+
@hook.delete(key, name)
|
120
129
|
end
|
121
130
|
|
122
131
|
def exec_hook
|
123
|
-
if @
|
132
|
+
if @queue.empty?
|
124
133
|
@logger.info("Execute empty queue hook.") if @logger
|
125
|
-
@
|
134
|
+
@hook.exec(:empty_queue, self)
|
126
135
|
end
|
127
136
|
add_tasks_from_generator
|
128
|
-
if @
|
137
|
+
if @queue.finished?
|
129
138
|
@logger.info("Execute finish hook.") if @logger
|
130
|
-
@
|
139
|
+
@hook.exec(:finish, self)
|
131
140
|
end
|
132
141
|
end
|
133
142
|
private :exec_hook
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module DRbQS
|
2
|
+
class ServerHook
|
3
|
+
def initialize
|
4
|
+
@hook = Hash.new { |h, k| h[k] = Array.new }
|
5
|
+
@argument_number = {}
|
6
|
+
@finish_exit = nil
|
7
|
+
set_argument_number(:empty_queue, 1)
|
8
|
+
set_argument_number(:finish, 1)
|
9
|
+
end
|
10
|
+
|
11
|
+
def set_argument_number(key, num)
|
12
|
+
@argument_number[key] = num
|
13
|
+
end
|
14
|
+
private :set_argument_number
|
15
|
+
|
16
|
+
def create_proc_name(key)
|
17
|
+
name = "#{key.to_s}#{rand(1000)}"
|
18
|
+
if @hook.has_key?(name)
|
19
|
+
create_proc_name(key)
|
20
|
+
else
|
21
|
+
name
|
22
|
+
end
|
23
|
+
end
|
24
|
+
private :create_proc_name
|
25
|
+
|
26
|
+
def add(key, name = nil, &block)
|
27
|
+
if (n = @argument_number[key]) && (block.arity != n)
|
28
|
+
raise ArgumentError, "Invalid argument number of hook of #{key.inspect}."
|
29
|
+
end
|
30
|
+
name ||= create_proc_name(key)
|
31
|
+
@hook[key] << [name, block]
|
32
|
+
name
|
33
|
+
end
|
34
|
+
|
35
|
+
def delete(key, name = nil)
|
36
|
+
if name
|
37
|
+
@hook[key].delete_if { |ary| ary[0] == name }
|
38
|
+
else
|
39
|
+
@hook[key].clear
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def specific_proc(key)
|
44
|
+
case key
|
45
|
+
when :finish
|
46
|
+
@finish_exit.call if @finish_exit
|
47
|
+
end
|
48
|
+
end
|
49
|
+
private :specific_proc
|
50
|
+
|
51
|
+
def hook_names(key)
|
52
|
+
@hook[key].map { |a| a[0] }
|
53
|
+
end
|
54
|
+
|
55
|
+
def exec(key, *args)
|
56
|
+
@hook[key].each do |ary|
|
57
|
+
ary[1].call(*args)
|
58
|
+
end
|
59
|
+
specific_proc(key)
|
60
|
+
end
|
61
|
+
|
62
|
+
def set_finish_exit(&block)
|
63
|
+
@finish_exit = block
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
data/lib/drbqs/task_generator.rb
CHANGED
@@ -13,6 +13,17 @@ module DRbQS
|
|
13
13
|
!!@__fiber__
|
14
14
|
end
|
15
15
|
|
16
|
+
def add_task(arg)
|
17
|
+
case arg
|
18
|
+
when DRbQS::Task
|
19
|
+
Fiber.yield(arg)
|
20
|
+
when Array
|
21
|
+
arg.each { |t| Fiber.yield(t) }
|
22
|
+
else
|
23
|
+
raise "Invalid type of an argument."
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
16
27
|
def create_add_task(*args, &block)
|
17
28
|
Fiber.yield(DRbQS::Task.new(*args, &block))
|
18
29
|
end
|
@@ -28,7 +39,7 @@ module DRbQS
|
|
28
39
|
end
|
29
40
|
|
30
41
|
def init
|
31
|
-
@__fiber_init__.call
|
42
|
+
@__fiber_init__.call if @__fiber_init__
|
32
43
|
end
|
33
44
|
|
34
45
|
# Return an array of new tasks.
|
@@ -57,18 +68,20 @@ module DRbQS
|
|
57
68
|
nil
|
58
69
|
end
|
59
70
|
|
60
|
-
# Create all tasks for test and return
|
71
|
+
# Create all tasks for test and return [group_number, task_number] if all tasks created properly.
|
61
72
|
def debug_all_tasks(limit = nil)
|
62
|
-
|
73
|
+
group_number = 0
|
74
|
+
task_number = 0
|
63
75
|
while ary = new_tasks
|
64
|
-
ary.each
|
65
|
-
unless DRbQS::
|
66
|
-
raise "Invalid
|
76
|
+
ary.each do |t|
|
77
|
+
unless DRbQS::Task === t
|
78
|
+
raise "Invalid #{i}th task: #{t.inspect}"
|
67
79
|
end
|
80
|
+
task_number += 1
|
68
81
|
end
|
69
|
-
|
82
|
+
group_number += 1
|
70
83
|
end
|
71
|
-
|
84
|
+
[group_number, task_number]
|
72
85
|
end
|
73
86
|
end
|
74
87
|
end
|
data/spec/manage_spec.rb
CHANGED
data/spec/server_define_spec.rb
CHANGED
@@ -9,7 +9,7 @@ describe DRbQS::ServerDefinition do
|
|
9
9
|
it "should define server" do
|
10
10
|
@server_definition.should_receive(:define_server)
|
11
11
|
DRbQS.define_server do |server, argv, opts|
|
12
|
-
server.
|
12
|
+
server.add_hook(:finish) do |serv|
|
13
13
|
serv.exit
|
14
14
|
end
|
15
15
|
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
require 'drbqs/server_hook'
|
4
|
+
|
5
|
+
describe DRbQS::ServerHook do
|
6
|
+
subject { DRbQS::ServerHook.new }
|
7
|
+
|
8
|
+
it "should add hook" do
|
9
|
+
subject.add(:finish) do |server|
|
10
|
+
3 + 4
|
11
|
+
end.should match(/^finish\d+/)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should add hook with name" do
|
15
|
+
name = 'hello'
|
16
|
+
subject.add(:finish, name) do |server|
|
17
|
+
3 + 4
|
18
|
+
end.should == name
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should raise error" do
|
22
|
+
lambda do
|
23
|
+
subject.add(:finish) do |a, b|
|
24
|
+
a + b
|
25
|
+
end
|
26
|
+
end.should raise_error
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should delete hook" do
|
30
|
+
name = subject.add(:finish) do |server|
|
31
|
+
3 + 4
|
32
|
+
end
|
33
|
+
subject.hook_names(:finish).should have(1).items
|
34
|
+
subject.hook_names(:finish).should include(name)
|
35
|
+
subject.delete(:finish, name)
|
36
|
+
subject.hook_names(:finish).should be_empty
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should delete all hooks" do
|
40
|
+
name = subject.add(:finish) do |server|
|
41
|
+
3 + 4
|
42
|
+
end
|
43
|
+
name = subject.add(:finish) do |server|
|
44
|
+
5 + 6
|
45
|
+
end
|
46
|
+
subject.hook_names(:finish).should have(2).items
|
47
|
+
subject.delete(:finish)
|
48
|
+
subject.hook_names(:finish).should be_empty
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should execute hooks" do
|
52
|
+
exec_flag = {}
|
53
|
+
subject.add(:finish) do |server|
|
54
|
+
exec_flag[:first] = true
|
55
|
+
end
|
56
|
+
subject.add(:finish) do |server|
|
57
|
+
exec_flag[:second] = true
|
58
|
+
end
|
59
|
+
subject.exec(:finish)
|
60
|
+
exec_flag[:first].should be_true
|
61
|
+
exec_flag[:second].should be_true
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should execute finish_exit" do
|
65
|
+
execute = nil
|
66
|
+
subject.set_finish_exit do
|
67
|
+
execute = true
|
68
|
+
end
|
69
|
+
subject.exec(:finish)
|
70
|
+
execute.should be_true
|
71
|
+
end
|
72
|
+
end
|
data/spec/task_generator_spec.rb
CHANGED
@@ -21,12 +21,21 @@ describe DRbQS::TaskGenerator do
|
|
21
21
|
create_add_task(i, :to_s)
|
22
22
|
end
|
23
23
|
end
|
24
|
+
subject.init
|
24
25
|
check_task_ary(subject.new_tasks, 2)
|
25
26
|
check_task_ary(subject.new_tasks, 1)
|
26
27
|
subject.new_tasks.should be_nil
|
27
28
|
end
|
28
29
|
|
29
30
|
it "should debug generator" do
|
30
|
-
subject.
|
31
|
+
subject.set(2) do
|
32
|
+
@data.each do |i|
|
33
|
+
create_add_task(i, :to_s)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
subject.init
|
37
|
+
group_number, task_number = subject.debug_all_tasks
|
38
|
+
group_number.should == 2
|
39
|
+
task_number.should == 3
|
31
40
|
end
|
32
41
|
end
|
data/spec/test1_spec.rb
CHANGED
data/spec/test2_spec.rb
CHANGED
@@ -13,14 +13,8 @@ describe DRbQS do
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
@process_id = fork do
|
16
|
-
server = DRbQS::Server.new(:port => 13501)
|
17
|
-
|
18
|
-
server.set_task_generator(@task_generator)
|
19
|
-
|
20
|
-
server.set_finish_hook do |serv|
|
21
|
-
serv.exit
|
22
|
-
end
|
23
|
-
|
16
|
+
server = DRbQS::Server.new(:port => 13501, :finish_exit => true)
|
17
|
+
server.add_task_generator(@task_generator)
|
24
18
|
server.set_signal_trap
|
25
19
|
server.start
|
26
20
|
server.wait
|
metadata
CHANGED
@@ -1,94 +1,72 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: drbqs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 6
|
9
|
-
prerelease: false
|
4
|
+
version: 0.0.7
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Takayuki YAMAGUCHI
|
13
|
-
autorequire:
|
9
|
+
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
date: 2011-03-08 00:00:00.000000000 +09:00
|
17
|
-
default_executable:
|
13
|
+
default_executable:
|
18
14
|
dependencies:
|
19
15
|
- !ruby/object:Gem::Dependency
|
20
16
|
name: rspec
|
21
|
-
requirement: &
|
17
|
+
requirement: &84782980 !ruby/object:Gem::Requirement
|
22
18
|
none: false
|
23
19
|
requirements:
|
24
20
|
- - ! '>='
|
25
21
|
- !ruby/object:Gem::Version
|
26
22
|
version: 2.5.0
|
27
|
-
segments:
|
28
|
-
- 2
|
29
|
-
- 5
|
30
|
-
- 0
|
31
23
|
type: :development
|
32
24
|
prerelease: false
|
33
|
-
version_requirements: *
|
25
|
+
version_requirements: *84782980
|
34
26
|
- !ruby/object:Gem::Dependency
|
35
27
|
name: yard
|
36
|
-
requirement: &
|
28
|
+
requirement: &84782720 !ruby/object:Gem::Requirement
|
37
29
|
none: false
|
38
30
|
requirements:
|
39
31
|
- - ~>
|
40
32
|
- !ruby/object:Gem::Version
|
41
33
|
version: 0.6.0
|
42
|
-
segments:
|
43
|
-
- 0
|
44
|
-
- 6
|
45
|
-
- 0
|
46
34
|
type: :development
|
47
35
|
prerelease: false
|
48
|
-
version_requirements: *
|
36
|
+
version_requirements: *84782720
|
49
37
|
- !ruby/object:Gem::Dependency
|
50
38
|
name: bundler
|
51
|
-
requirement: &
|
39
|
+
requirement: &84782460 !ruby/object:Gem::Requirement
|
52
40
|
none: false
|
53
41
|
requirements:
|
54
42
|
- - ~>
|
55
43
|
- !ruby/object:Gem::Version
|
56
44
|
version: 1.0.0
|
57
|
-
segments:
|
58
|
-
- 1
|
59
|
-
- 0
|
60
|
-
- 0
|
61
45
|
type: :development
|
62
46
|
prerelease: false
|
63
|
-
version_requirements: *
|
47
|
+
version_requirements: *84782460
|
64
48
|
- !ruby/object:Gem::Dependency
|
65
49
|
name: jeweler
|
66
|
-
requirement: &
|
50
|
+
requirement: &84782210 !ruby/object:Gem::Requirement
|
67
51
|
none: false
|
68
52
|
requirements:
|
69
53
|
- - ~>
|
70
54
|
- !ruby/object:Gem::Version
|
71
55
|
version: 1.5.2
|
72
|
-
segments:
|
73
|
-
- 1
|
74
|
-
- 5
|
75
|
-
- 2
|
76
56
|
type: :development
|
77
57
|
prerelease: false
|
78
|
-
version_requirements: *
|
58
|
+
version_requirements: *84782210
|
79
59
|
- !ruby/object:Gem::Dependency
|
80
60
|
name: rcov
|
81
|
-
requirement: &
|
61
|
+
requirement: &84781940 !ruby/object:Gem::Requirement
|
82
62
|
none: false
|
83
63
|
requirements:
|
84
64
|
- - ! '>='
|
85
65
|
- !ruby/object:Gem::Version
|
86
66
|
version: '0'
|
87
|
-
segments:
|
88
|
-
- 0
|
89
67
|
type: :development
|
90
68
|
prerelease: false
|
91
|
-
version_requirements: *
|
69
|
+
version_requirements: *84781940
|
92
70
|
description: Task queuing system over network that is implemented by dRuby.
|
93
71
|
email: d@ytak.info
|
94
72
|
executables:
|
@@ -115,6 +93,7 @@ files:
|
|
115
93
|
- example/drbqs-manage-test.rb
|
116
94
|
- example/drbqs-node-test.rb
|
117
95
|
- example/drbqs-server-test.rb
|
96
|
+
- example/server/server_def.rb
|
118
97
|
- example/sum/server_def.rb
|
119
98
|
- example/sum/sum.rb
|
120
99
|
- lib/drbqs.rb
|
@@ -127,6 +106,7 @@ files:
|
|
127
106
|
- lib/drbqs/queue.rb
|
128
107
|
- lib/drbqs/server.rb
|
129
108
|
- lib/drbqs/server_define.rb
|
109
|
+
- lib/drbqs/server_hook.rb
|
130
110
|
- lib/drbqs/task.rb
|
131
111
|
- lib/drbqs/task_client.rb
|
132
112
|
- lib/drbqs/task_generator.rb
|
@@ -138,6 +118,7 @@ files:
|
|
138
118
|
- spec/node_list_spec.rb
|
139
119
|
- spec/queue_spec.rb
|
140
120
|
- spec/server_define_spec.rb
|
121
|
+
- spec/server_hook_spec.rb
|
141
122
|
- spec/server_spec.rb
|
142
123
|
- spec/spec_helper.rb
|
143
124
|
- spec/task_client_spec.rb
|
@@ -150,7 +131,7 @@ has_rdoc: true
|
|
150
131
|
homepage: http://github.com/ytaka/drbqs
|
151
132
|
licenses:
|
152
133
|
- GPL3
|
153
|
-
post_install_message:
|
134
|
+
post_install_message:
|
154
135
|
rdoc_options: []
|
155
136
|
require_paths:
|
156
137
|
- lib
|
@@ -162,19 +143,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
162
143
|
version: '0'
|
163
144
|
segments:
|
164
145
|
- 0
|
165
|
-
hash:
|
146
|
+
hash: -184598193
|
166
147
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
148
|
none: false
|
168
149
|
requirements:
|
169
150
|
- - ! '>='
|
170
151
|
- !ruby/object:Gem::Version
|
171
152
|
version: '0'
|
172
|
-
segments:
|
173
|
-
- 0
|
174
153
|
requirements: []
|
175
|
-
rubyforge_project:
|
176
|
-
rubygems_version: 1.
|
177
|
-
signing_key:
|
154
|
+
rubyforge_project:
|
155
|
+
rubygems_version: 1.6.1
|
156
|
+
signing_key:
|
178
157
|
specification_version: 3
|
179
158
|
summary: dRuby Queueing System
|
180
159
|
test_files:
|
@@ -185,6 +164,7 @@ test_files:
|
|
185
164
|
- spec/node_list_spec.rb
|
186
165
|
- spec/queue_spec.rb
|
187
166
|
- spec/server_define_spec.rb
|
167
|
+
- spec/server_hook_spec.rb
|
188
168
|
- spec/server_spec.rb
|
189
169
|
- spec/spec_helper.rb
|
190
170
|
- spec/task_client_spec.rb
|