Parcourir la source

Term hard handler must raise SystemTerminate for cold shutdown

Ask Solem il y a 13 ans
Parent
commit
7dbc4a8d3b
2 fichiers modifiés avec 3 ajouts et 3 suppressions
  1. 1 1
      celery/apps/worker.py
  2. 2 2
      celery/tests/test_bin/test_celeryd.py

+ 1 - 1
celery/apps/worker.py

@@ -312,7 +312,7 @@ def install_worker_term_hard_handler(worker):
         if not process_name or process_name == "MainProcess":
             print("celeryd: Cold shutdown (%s)" % (process_name, ))
             worker.terminate(in_sighandler=True)
-        raise SystemExit()
+        raise SystemTerminate()
 
     platforms.signals["SIGQUIT"] = _stop
 

+ 2 - 2
celery/tests/test_bin/test_celeryd.py

@@ -20,7 +20,7 @@ from celery import signals
 from celery import current_app
 from celery.apps import worker as cd
 from celery.bin.celeryd import WorkerCommand, main as celeryd_main
-from celery.exceptions import ImproperlyConfigured
+from celery.exceptions import ImproperlyConfigured, SystemTerminate
 
 from celery.tests.utils import (AppCase, WhateverIO, mask_modules,
                                 reset_modules, skip_unless_module)
@@ -572,6 +572,6 @@ class test_signal_handlers(AppCase):
     def test_worker_term_hard_handler(self):
         worker = self._Worker()
         handlers = self.psig(cd.install_worker_term_hard_handler, worker)
-        with self.assertRaises(SystemExit):
+        with self.assertRaises(SystemTerminate):
             handlers["SIGQUIT"]("SIGQUIT", object())
         self.assertTrue(worker.terminated)