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:
@@ -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.
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user