Class: Conductor::Worker::WorkerRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/conductor/worker/worker_registry.rb

Overview

Global registry for workers defined via worker_task DSL Workers are registered when their defining code is loaded

Class Method Summary collapse

Class Method Details

.allArray<Hash>

Get all registered worker definitions

Returns:

  • (Array<Hash>)

    Array of worker definition hashes



25
26
27
# File 'lib/conductor/worker/worker_registry.rb', line 25

def all
  registry.values
end

.clearvoid

This method returns an undefined value.

Clear all registered workers (primarily for testing)



47
48
49
# File 'lib/conductor/worker/worker_registry.rb', line 47

def clear
  @registry = {}
end

.countInteger

Get the count of registered workers

Returns:

  • (Integer)


53
54
55
# File 'lib/conductor/worker/worker_registry.rb', line 53

def count
  registry.size
end

.get(task_definition_name, domain: nil) ⇒ Hash?

Get a specific worker definition

Parameters:

  • task_definition_name (String)

    Task definition name

  • domain (String, nil) (defaults to: nil)

    Optional domain

Returns:

  • (Hash, nil)

    Worker definition or nil



33
34
35
# File 'lib/conductor/worker/worker_registry.rb', line 33

def get(task_definition_name, domain: nil)
  registry[[task_definition_name, domain]]
end

.register(task_definition_name, execute_function, options = {}) ⇒ void

This method returns an undefined value.

Register a worker definition

Parameters:

  • task_definition_name (String)

    Task definition name

  • execute_function (Proc, Method)

    Function to execute tasks

  • options (Hash) (defaults to: {})

    Worker configuration options



14
15
16
17
18
19
20
21
# File 'lib/conductor/worker/worker_registry.rb', line 14

def register(task_definition_name, execute_function, options = {})
  key = [task_definition_name, options[:domain]]
  registry[key] = {
    task_definition_name: task_definition_name,
    execute_function: execute_function,
    options: options
  }
end

.registered?(task_definition_name, domain: nil) ⇒ Boolean

Check if a worker is registered

Parameters:

  • task_definition_name (String)

    Task definition name

  • domain (String, nil) (defaults to: nil)

    Optional domain

Returns:

  • (Boolean)


41
42
43
# File 'lib/conductor/worker/worker_registry.rb', line 41

def registered?(task_definition_name, domain: nil)
  registry.key?([task_definition_name, domain])
end

.task_namesArray<String>

Get all registered task definition names

Returns:

  • (Array<String>)


59
60
61
# File 'lib/conductor/worker/worker_registry.rb', line 59

def task_names
  registry.keys.map(&:first).uniq
end