39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/zspec/queue.rb', line 39
def done_queue
Enumerator.new do |yielder|
until workers_ready? && complete?
expire_processing
_list, message = @sink.brpop(@done_queue_name, timeout: 1)
if message.nil?
yielder << [nil, nil]
next
end
if @sink.hget(@metadata_hash_name, dedupe_key(message))
yielder << [nil, nil]
next
end
results = @sink.hget(@metadata_hash_name, results_key(message))
if results.nil?
yielder << [nil, nil]
next
end
stdout = @sink.hget(@metadata_hash_name, stdout_key(message))
@sink.hset(@metadata_hash_name, dedupe_key(message), true)
@sink.decr(@counter_name)
yielder << [results, stdout]
end
end
end
|