Refactor: Worker-Pool-Zugriff über öffentliche Getter statt private Modul-Globals

get_saxon_worker_pool() und get_fop_worker_pool() in transform.py hinzugefügt.
worker_pool.py greift nicht mehr direkt auf transform._saxon_worker_pool /
transform._fop_worker_pool zu, sondern verwendet die Getter/Setter konsistent.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-09 20:18:01 +01:00
parent cfbdb8b7fa
commit 87b2d9273f
2 changed files with 17 additions and 15 deletions
+10
View File
@@ -38,6 +38,11 @@ def set_saxon_worker_pool(pool: Optional["SaxonWorkerPool | SaxonWorkerPoolS9Api
logger.info("Saxon-Worker-Pool deaktiviert (Fallback auf subprocess)") logger.info("Saxon-Worker-Pool deaktiviert (Fallback auf subprocess)")
def get_saxon_worker_pool() -> Optional["SaxonWorkerPool | SaxonWorkerPoolS9Api"]:
"""Gibt den aktuellen globalen Saxon-Worker-Pool zurück."""
return _saxon_worker_pool
def set_fop_worker_pool(pool: Optional["FopWorkerPool"]): def set_fop_worker_pool(pool: Optional["FopWorkerPool"]):
"""Setzt den globalen FOP-Worker-Pool.""" """Setzt den globalen FOP-Worker-Pool."""
global _fop_worker_pool global _fop_worker_pool
@@ -48,6 +53,11 @@ def set_fop_worker_pool(pool: Optional["FopWorkerPool"]):
logger.info("FOP-Worker-Pool deaktiviert (Fallback auf subprocess)") logger.info("FOP-Worker-Pool deaktiviert (Fallback auf subprocess)")
def get_fop_worker_pool() -> Optional["FopWorkerPool"]:
"""Gibt den aktuellen globalen FOP-Worker-Pool zurück."""
return _fop_worker_pool
class TransformationJob: class TransformationJob:
""" """
Repräsentiert einen einzelnen Transformations-Job. Repräsentiert einen einzelnen Transformations-Job.
+7 -15
View File
@@ -10,7 +10,7 @@ import logging
from PySide6.QtWidgets import QMessageBox from PySide6.QtWidgets import QMessageBox
from conf import app_settings, XsltVersion from conf import app_settings, XsltVersion
from transform import TransformationJob, set_saxon_worker_pool from transform import TransformationJob, get_saxon_worker_pool, set_saxon_worker_pool, get_fop_worker_pool, set_fop_worker_pool
from saxon_pool import SaxonWorkerPool from saxon_pool import SaxonWorkerPool
from saxon_pool_s9api import SaxonWorkerPoolS9Api from saxon_pool_s9api import SaxonWorkerPoolS9Api
@@ -90,12 +90,10 @@ class WorkerPoolMixin:
def _shutdown_saxon_worker_pool(self): def _shutdown_saxon_worker_pool(self):
"""Beendet den Saxon-Worker-Pool sauber.""" """Beendet den Saxon-Worker-Pool sauber."""
try: try:
# Importiere transform um Zugriff auf globalen Pool zu haben pool = get_saxon_worker_pool()
import transform if pool:
if transform._saxon_worker_pool:
logger.info("Beende Saxon-Worker-Pool...") logger.info("Beende Saxon-Worker-Pool...")
transform._saxon_worker_pool.shutdown() pool.shutdown()
set_saxon_worker_pool(None) set_saxon_worker_pool(None)
logger.info("Saxon-Worker-Pool beendet") logger.info("Saxon-Worker-Pool beendet")
@@ -136,7 +134,6 @@ class WorkerPoolMixin:
# Importiere FopWorkerPool # Importiere FopWorkerPool
from fop_pool import FopWorkerPool from fop_pool import FopWorkerPool
from transform import set_fop_worker_pool
# Erstelle Worker-Pool # Erstelle Worker-Pool
num_workers = app_settings.max_workers num_workers = app_settings.max_workers
@@ -165,15 +162,10 @@ class WorkerPoolMixin:
def _shutdown_fop_worker_pool(self): def _shutdown_fop_worker_pool(self):
"""Beendet den FOP-Worker-Pool sauber.""" """Beendet den FOP-Worker-Pool sauber."""
try: try:
# Importiere transform um Zugriff auf globalen Pool zu haben pool = get_fop_worker_pool()
import transform if pool:
if transform._fop_worker_pool:
logger.info("Beende FOP-Worker-Pool...") logger.info("Beende FOP-Worker-Pool...")
transform._fop_worker_pool.shutdown() pool.shutdown()
# Importiere set_fop_worker_pool
from transform import set_fop_worker_pool
set_fop_worker_pool(None) set_fop_worker_pool(None)
logger.info("FOP-Worker-Pool beendet") logger.info("FOP-Worker-Pool beendet")