diff --git a/app/api/qgis_map_export.py b/app/api/qgis_map_export.py index 3771978..5c7db0e 100644 --- a/app/api/qgis_map_export.py +++ b/app/api/qgis_map_export.py @@ -316,7 +316,7 @@ def _background_export(inference_id: int) -> None: status = "FAIL" if "error" in r else "OK" logger.info(f"[Pool] {status} {r.get('name', '?')}: {r.get('error', r.get('output', ''))[:100]}") if inference_id and file_store and "error" not in r: - _write_single_path(inference_id, r.get("output", ""), file_store, db_lock) + _write_single_path(inference_id, r["output"], file_store, db_lock) results, summary = qgis_pool.submit_job(config, container_models, _on_progress) diff --git a/app/services/qgis/qgis_pool.py b/app/services/qgis/qgis_pool.py index e2752ac..589b1ac 100644 --- a/app/services/qgis/qgis_pool.py +++ b/app/services/qgis/qgis_pool.py @@ -139,7 +139,7 @@ class QgisPool: for line in worker.proc.stderr: line = line.strip() if line: - logger.debug(f"[Worker-{worker.worker_id}] stderr: {line}") + logger.info(f"[Worker-{worker.worker_id}] {line}") except Exception: pass diff --git a/app/services/qgis/qgis_worker.py b/app/services/qgis/qgis_worker.py index c3efd0b..9eb599c 100644 --- a/app/services/qgis/qgis_worker.py +++ b/app/services/qgis/qgis_worker.py @@ -188,4 +188,11 @@ def main(): if __name__ == "__main__": - main() + try: + main() + except Exception as e: + # 捕获 main() 未处理的异常,确保输出到 stderr + import traceback + print(f"[worker] 未捕获异常: {e}", file=sys.stderr) + traceback.print_exc(file=sys.stderr) + sys.exit(1)