From 65a7c82af9e733d622f1e86142de042528f3124b Mon Sep 17 00:00:00 2001 From: Mikhail Epifanov Date: Tue, 6 Feb 2024 00:17:23 +0100 Subject: [PATCH] terminate worker on finalize --- cookbook/connectors/connector_manager.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cookbook/connectors/connector_manager.py b/cookbook/connectors/connector_manager.py index 60a0d5e2b..f32e49c84 100644 --- a/cookbook/connectors/connector_manager.py +++ b/cookbook/connectors/connector_manager.py @@ -2,6 +2,7 @@ import asyncio import logging import multiprocessing import queue +import weakref from asyncio import Task from dataclasses import dataclass from enum import Enum @@ -49,6 +50,7 @@ class ConnectorManager: self._queue = multiprocessing.JoinableQueue(maxsize=settings.EXTERNAL_CONNECTORS_QUEUE_SIZE) self._worker = multiprocessing.Process(target=self.worker, args=(0, self._queue,), daemon=True) self._worker.start() + weakref.finalize(self, self._worker.terminate) # Called by post save & post delete signals def __call__(self, instance: Any, **kwargs) -> None: