Class: DatWorkerPool::Worker::TestHelpers::TestRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/dat-worker-pool/worker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(worker_class, options = nil) ⇒ TestRunner

Returns a new instance of TestRunner.



210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
# File 'lib/dat-worker-pool/worker.rb', line 210

def initialize(worker_class, options = nil)
  @worker_class = worker_class

  @queue = options[:queue] || begin
    require 'dat-worker-pool/default_queue'
    DatWorkerPool::DefaultQueue.new
  end

  @dwp_runner = DatWorkerPool::Runner.new({
    :num_workers   => MIN_WORKERS,
    :logger        => options[:logger],
    :queue         => @queue,
    :worker_class  => @worker_class,
    :worker_params => options[:params]
  })

  @worker = worker_class.new(@dwp_runner, @queue, 1)
end

Instance Attribute Details

#dwp_runnerObject (readonly)

Returns the value of attribute dwp_runner.



208
209
210
# File 'lib/dat-worker-pool/worker.rb', line 208

def dwp_runner
  @dwp_runner
end

#queueObject (readonly)

Returns the value of attribute queue.



208
209
210
# File 'lib/dat-worker-pool/worker.rb', line 208

def queue
  @queue
end

#workerObject (readonly)

Returns the value of attribute worker.



207
208
209
# File 'lib/dat-worker-pool/worker.rb', line 207

def worker
  @worker
end

#worker_classObject (readonly)

Returns the value of attribute worker_class.



207
208
209
# File 'lib/dat-worker-pool/worker.rb', line 207

def worker_class
  @worker_class
end

Instance Method Details

#error(exception, work_item = nil) ⇒ Object



241
242
243
# File 'lib/dat-worker-pool/worker.rb', line 241

def error(exception, work_item = nil)
  run_callback('on_error', self.worker, exception, work_item)
end

#make_availableObject



257
258
259
# File 'lib/dat-worker-pool/worker.rb', line 257

def make_available
  self.worker.instance_eval{ dwp_make_available }
end

#make_unavailableObject



253
254
255
# File 'lib/dat-worker-pool/worker.rb', line 253

def make_unavailable
  self.worker.instance_eval{ dwp_make_unavailable }
end

#run(work_item) ⇒ Object



229
230
231
232
233
234
235
# File 'lib/dat-worker-pool/worker.rb', line 229

def run(work_item)
  self.start
  self.make_unavailable
  self.work(work_item)
  self.make_available
  self.shutdown
end

#shutdownObject



249
250
251
# File 'lib/dat-worker-pool/worker.rb', line 249

def shutdown
  run_callback('on_shutdown', self.worker)
end

#startObject



245
246
247
# File 'lib/dat-worker-pool/worker.rb', line 245

def start
  run_callback('on_start', self.worker)
end

#work(work_item) ⇒ Object



237
238
239
# File 'lib/dat-worker-pool/worker.rb', line 237

def work(work_item)
  self.worker.instance_eval{ dwp_work(work_item) }
end