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.



218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
# File 'lib/dat-worker-pool/worker.rb', line 218

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.



216
217
218
# File 'lib/dat-worker-pool/worker.rb', line 216

def dwp_runner
  @dwp_runner
end

#queueObject (readonly)

Returns the value of attribute queue.



216
217
218
# File 'lib/dat-worker-pool/worker.rb', line 216

def queue
  @queue
end

#workerObject (readonly)

Returns the value of attribute worker.



215
216
217
# File 'lib/dat-worker-pool/worker.rb', line 215

def worker
  @worker
end

#worker_classObject (readonly)

Returns the value of attribute worker_class.



215
216
217
# File 'lib/dat-worker-pool/worker.rb', line 215

def worker_class
  @worker_class
end

Instance Method Details

#error(exception, work_item = nil) ⇒ Object



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

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

#make_availableObject



265
266
267
# File 'lib/dat-worker-pool/worker.rb', line 265

def make_available
  self.worker.instance_eval{ dwp_make_available }
end

#make_unavailableObject



261
262
263
# File 'lib/dat-worker-pool/worker.rb', line 261

def make_unavailable
  self.worker.instance_eval{ dwp_make_unavailable }
end

#run(work_item) ⇒ Object



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

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

#shutdownObject



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

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

#startObject



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

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

#work(work_item) ⇒ Object



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

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