Class: FlightControl::Server

Inherits:
Object
  • Object
show all
Includes:
IdentifiedByName, RecurringTasks, Serializable, Workers
Defined in:
lib/flight_control/server.rb

Defined Under Namespace

Modules: RecurringTasks, Serializable, Workers

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Serializable

#to_global_id

Methods included from RecurringTasks

#find_recurring_task, #recurring_tasks

Methods included from Workers

#find_worker, #workers_relation

Methods included from IdentifiedByName

#id

Constructor Details

#initialize(name:, queue_adapter:, application:, backtrace_cleaner: nil) ⇒ Server

Returns a new instance of Server.



11
12
13
14
15
16
17
18
19
20
# File 'lib/flight_control/server.rb', line 11

def initialize(name:, queue_adapter:, application:, backtrace_cleaner: nil)
  super(name: name)
  unless queue_adapter.is_a?(ActiveJob::QueueAdapters::SolidQueueAdapter)
    raise FlightControl::Errors::UnsupportedAdapter,
      "Flight Control only supports Solid Queue, can't register server #{name} with #{queue_adapter.class}"
  end
  @queue_adapter = queue_adapter
  @application = application
  @backtrace_cleaner = backtrace_cleaner || FlightControl.backtrace_cleaner
end

Instance Attribute Details

#applicationObject (readonly)

Returns the value of attribute application.



9
10
11
# File 'lib/flight_control/server.rb', line 9

def application
  @application
end

#backtrace_cleanerObject (readonly)

Returns the value of attribute backtrace_cleaner.



9
10
11
# File 'lib/flight_control/server.rb', line 9

def backtrace_cleaner
  @backtrace_cleaner
end

#nameObject (readonly)

Returns the value of attribute name.



9
10
11
# File 'lib/flight_control/server.rb', line 9

def name
  @name
end

#queue_adapterObject (readonly)

Returns the value of attribute queue_adapter.



9
10
11
# File 'lib/flight_control/server.rb', line 9

def queue_adapter
  @queue_adapter
end

Instance Method Details

#activating(&block) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/flight_control/server.rb', line 22

def activating(&block)
  previous_adapter = ActiveJob::Base.current_queue_adapter
  ActiveJob::Base.current_queue_adapter = queue_adapter
  queue_adapter.activating(&block)
ensure
  ActiveJob::Base.current_queue_adapter = previous_adapter
end

#queue_adapter_nameObject



30
31
32
# File 'lib/flight_control/server.rb', line 30

def queue_adapter_name
  ActiveJob.adapter_name(queue_adapter).underscore.to_sym
end