Skip to content

Commit f7feb48

Browse files
committed
Ensure that non-standalone supervisor terminates gracefully
Standalone supervisors run this from the signal handler, so for non-standalone we need to make sure this is run after shutting down.
1 parent cca44d2 commit f7feb48

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

lib/solid_queue/async_supervisor.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
module SolidQueue
44
class AsyncSupervisor < Supervisor
5+
after_shutdown :terminate_gracefully, unless: :standalone?
6+
57
def stop
68
super
79
@thread&.join

test/integration/async_processes_lifecycle_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ class AsyncProcessesLifecycleTest < ActiveSupport::TestCase
3232

3333
test "kill supervisor while there are jobs in-flight" do
3434
no_pause = enqueue_store_result_job("no pause")
35-
pause = enqueue_store_result_job("pause", pause: 1.second)
35+
pause = enqueue_store_result_job("pause", pause: 3.second)
3636

3737
signal_process(@pid, :KILL, wait: 0.2.seconds)
3838
wait_for_jobs_to_finish_for(2.seconds)
39-
wait_for_registered_processes(1, timeout: 3.second)
39+
wait_for_registered_processes(1, timeout: 2.second)
4040

4141
assert_not process_exists?(@pid)
4242

0 commit comments

Comments
 (0)