Class: Testjour::QueueServer
- Inherits:
-
Object
- Object
- Testjour::QueueServer
show all
- Defined in:
- lib/testjour/queue_server.rb
Defined Under Namespace
Classes: NoWorkUnitsAvailableError, NoWorkUnitsRemainingError, ResultOverdueError
Constant Summary
collapse
- TIMEOUT_IN_SECONDS =
60
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of QueueServer.
20
21
22
|
# File 'lib/testjour/queue_server.rb', line 20
def initialize
reset
end
|
Class Method Details
.stop ⇒ Object
16
17
18
|
# File 'lib/testjour/queue_server.rb', line 16
def self.stop
DRb.stop_service
end
|
.with_server {|server| ... } ⇒ Object
10
11
12
13
14
|
# File 'lib/testjour/queue_server.rb', line 10
def self.with_server
server = new
DRb.start_service(nil, server)
yield server
end
|
Instance Method Details
#done_with_work ⇒ Object
29
30
31
|
# File 'lib/testjour/queue_server.rb', line 29
def done_with_work
@done_with_work = true
end
|
#reset ⇒ Object
24
25
26
27
|
# File 'lib/testjour/queue_server.rb', line 24
def reset
@work_queue = Queue.new
@result_queue = Queue.new
end
|
#take_work ⇒ Object
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/testjour/queue_server.rb', line 39
def take_work
raise NoWorkUnitsRemainingError if @done_with_work
@work_queue.pop(true)
rescue Object => ex
if ex.message == "queue empty"
raise NoWorkUnitsAvailableError
else
raise
end
end
|
#write_result(uri, dot, message = nil, backtrace = []) ⇒ Object
51
52
53
54
|
# File 'lib/testjour/queue_server.rb', line 51
def write_result(uri, dot, message = nil, backtrace = [])
@result_queue.push [uri, dot, message.to_s, backtrace.join("\n")]
nil
end
|
#write_work(work_unit) ⇒ Object
56
57
58
59
|
# File 'lib/testjour/queue_server.rb', line 56
def write_work(work_unit)
@work_queue.push work_unit
nil
end
|