Skip to content

Commit e554e7e

Browse files
committed
Refactor and simplify process callbacks setup
1 parent 16966b6 commit e554e7e

File tree

6 files changed

+27
-16
lines changed

6 files changed

+27
-16
lines changed

lib/solid_queue.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
require "solid_queue/processes/supervised"
1111
require "solid_queue/processes/registrable"
1212
require "solid_queue/processes/interruptible"
13+
require "solid_queue/processes/callbacks"
1314
require "solid_queue/processes/pidfile"
1415
require "solid_queue/processes/procline"
1516
require "solid_queue/processes/poller"

lib/solid_queue/dispatcher.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ class Dispatcher < Processes::Base
66

77
attr_accessor :batch_size, :concurrency_clerk
88

9-
set_callback :boot, :after, :launch_concurrency_maintenance, if: :concurrency_clerk?
10-
set_callback :shutdown, :before, :stop_concurrency_maintenance, if: :concurrency_clerk?
9+
after_boot :launch_concurrency_maintenance, if: :concurrency_clerk?
10+
before_shutdown :stop_concurrency_maintenance, if: :concurrency_clerk?
1111

1212
def initialize(**options)
1313
options = options.dup.with_defaults(SolidQueue::Configuration::DISPATCHER_DEFAULTS)

lib/solid_queue/processes/base.rb

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,14 @@
33
module SolidQueue
44
module Processes
55
class Base
6-
include ActiveSupport::Callbacks
7-
define_callbacks :boot, :shutdown
8-
6+
include Callbacks # Defines callbacks needed by other concerns
97
include AppExecutor, Registrable, Interruptible, Procline
108

119
private
1210
def observe_initial_delay
1311
interruptible_sleep(initial_jitter)
1412
end
1513

16-
def boot
17-
end
18-
19-
def shutdown
20-
end
21-
2214
def initial_jitter
2315
0
2416
end
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# frozen_string_literal: true
2+
3+
module SolidQueue::Processes
4+
module Callbacks
5+
extend ActiveSupport::Concern
6+
7+
included do
8+
extend ActiveModel::Callbacks
9+
define_model_callbacks :boot, :shutdown
10+
end
11+
12+
private
13+
def boot
14+
end
15+
16+
def shutdown
17+
end
18+
end
19+
end

lib/solid_queue/processes/registrable.rb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@ module Registrable
55
extend ActiveSupport::Concern
66

77
included do
8-
set_callback :boot, :after, :register
9-
set_callback :boot, :after, :launch_heartbeat
8+
after_boot :register, :launch_heartbeat
109

11-
set_callback :shutdown, :before, :stop_heartbeat
12-
set_callback :shutdown, :after, :deregister
10+
before_shutdown :stop_heartbeat
11+
after_shutdown :deregister
1312
end
1413

1514
def inspect

lib/solid_queue/supervisor.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ module SolidQueue
44
class Supervisor < Processes::Base
55
include Processes::Signals
66

7-
set_callback :boot, :after, :launch_process_prune
7+
after_boot :launch_process_prune
88

99
class << self
1010
def start(mode: :work, load_configuration_from: nil)

0 commit comments

Comments
 (0)