terminate worker on finalize

This commit is contained in:
Mikhail Epifanov
2024-02-06 00:17:23 +01:00
parent 2bfc8b0717
commit 65a7c82af9

View File

@@ -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: