Class: Bricolage::FileTaskQueue
- Inherits:
-
Object
- Object
- Bricolage::FileTaskQueue
- Defined in:
- lib/bricolage/taskqueue.rb
Defined Under Namespace
Classes: Task
Instance Method Summary collapse
- #cancel_jobnet(jobnet, message) ⇒ Object
- #consume_each ⇒ Object
- #each ⇒ Object
- #empty? ⇒ Boolean
- #enqueue_jobnet(jobnet) ⇒ Object
-
#initialize(path:) ⇒ FileTaskQueue
constructor
A new instance of FileTaskQueue.
- #locked?(jobnet) ⇒ Boolean
- #restore_jobnet(jobnet) ⇒ Object
- #size ⇒ Object
- #unlock_help(jobnet) ⇒ Object
Constructor Details
#initialize(path:) ⇒ FileTaskQueue
Returns a new instance of FileTaskQueue.
65 66 67 68 |
# File 'lib/bricolage/taskqueue.rb', line 65 def initialize(path:) @path = path @queue = [] end |
Instance Method Details
#cancel_jobnet(jobnet, message) ⇒ Object
149 150 151 152 153 |
# File 'lib/bricolage/taskqueue.rb', line 149 def cancel_jobnet(jobnet, ) unlock FileUtils.rm_f(@path) @queue.clear end |
#consume_each ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/bricolage/taskqueue.rb', line 97 def consume_each lock save while task = @queue.first task_result = yield task.job break unless task_result.success? @queue.shift save end ensure unlock end |
#each ⇒ Object
91 92 93 94 95 |
# File 'lib/bricolage/taskqueue.rb', line 91 def each @queue.each do |task| yield task.job end end |
#empty? ⇒ Boolean
70 71 72 |
# File 'lib/bricolage/taskqueue.rb', line 70 def empty? @queue.empty? end |
#enqueue_jobnet(jobnet) ⇒ Object
85 86 87 88 89 |
# File 'lib/bricolage/taskqueue.rb', line 85 def enqueue_jobnet(jobnet) jobnet.sequential_jobs.each do |ref| @queue.push Task.new(ref) end end |
#locked?(jobnet) ⇒ Boolean
129 130 131 |
# File 'lib/bricolage/taskqueue.rb', line 129 def locked?(jobnet) lock_file_path.exist? end |
#restore_jobnet(jobnet) ⇒ Object
78 79 80 81 82 83 |
# File 'lib/bricolage/taskqueue.rb', line 78 def restore_jobnet(jobnet) return unless File.exist?(@path) File.foreach(@path) do |line| @queue.push Task.deserialize(line) end end |
#size ⇒ Object
74 75 76 |
# File 'lib/bricolage/taskqueue.rb', line 74 def size @queue.size end |
#unlock_help(jobnet) ⇒ Object
145 146 147 |
# File 'lib/bricolage/taskqueue.rb', line 145 def unlock_help(jobnet) "remove the file: #{lock_file_path}" end |