修改多个问题,优化代码结构
This commit is contained in:
@@ -48,7 +48,6 @@ from ..config import (
|
||||
from ..config.strategy_config import resolve_domain_option_config
|
||||
from ..sync_system.strategy import BaseSyncStrategy
|
||||
from ..logging import configure_app_logging, ensure_app_logging, get_logger
|
||||
from .run_logger import init_pipeline_logger
|
||||
from .full_sync_pipeline import FullSyncPipeline
|
||||
|
||||
|
||||
@@ -458,9 +457,16 @@ async def run_profile_from_file(
|
||||
cfg_path = Path(config_path)
|
||||
raw = load_overrides_from_file(cfg_path, project_root)
|
||||
if is_multi_project_payload(raw):
|
||||
from .multi_project_pipeline import MultiProjectPipeline
|
||||
from .multi_project_pipeline import MultiProjectPipeline, _resolve_embedded_config_path
|
||||
|
||||
multi_cfg = MultiProjectRunConfig.model_validate(raw)
|
||||
global_cfg_path = _resolve_embedded_config_path(
|
||||
multi_cfg.global_config,
|
||||
project_root=project_root,
|
||||
profile_path=cfg_path,
|
||||
)
|
||||
global_config = build_config_from_file(project_root=project_root, file_path=global_cfg_path)
|
||||
configure_app_logging(global_config.logging, replace_handlers=True)
|
||||
pipeline = MultiProjectPipeline(project_root=project_root, config_path=cfg_path, config=multi_cfg)
|
||||
if print_summary:
|
||||
logger.info("\n%s", "=" * 80)
|
||||
@@ -469,7 +475,7 @@ async def run_profile_from_file(
|
||||
return await pipeline.run()
|
||||
|
||||
config = build_config(project_root=project_root, overrides=raw)
|
||||
configure_app_logging(config.logging, replace_handlers=False)
|
||||
configure_app_logging(config.logging, replace_handlers=True)
|
||||
mode = f"{config.local_datasource.type}->{config.remote_datasource.type}"
|
||||
return await run_pipeline_from_config(
|
||||
config,
|
||||
|
||||
@@ -15,17 +15,19 @@ if TYPE_CHECKING:
|
||||
from ..datasource.jsonl import JsonlDataSource
|
||||
from ..common.collection import DataCollection
|
||||
from ..common.binding import BindingManager
|
||||
from ..logging import get_logger
|
||||
from ..common.persistence import PersistenceBackend
|
||||
from ..sync_system.strategy import BaseSyncStrategy
|
||||
from ..sync_system.config import OrphanAction, UpdateDirection
|
||||
from ..engine import StateMachineConfig, StateMachineRuntime
|
||||
from ..engine import e41_post_create_ready
|
||||
from ..sync_system.strategy_ops import finalize_peer_creating_sources, run_phase2_cleanup
|
||||
from ..sync_system.strategy_ops.bind_ops import refresh_bind_data_id
|
||||
from ..sync_system.strategy_ops.post_check_ops import evaluate_consistency_for_node_type
|
||||
from .summary_report import print_pipeline_summary
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
class FullSyncPipeline:
|
||||
@@ -211,10 +213,24 @@ class FullSyncPipeline:
|
||||
try:
|
||||
created = await strategy.create()
|
||||
self._logger.info(f"✅ Strategy create: {node_type} (created={len(created)})")
|
||||
created_local_node_ids = {
|
||||
node.node_id for node in created if self.local_collection.get_by_node_id(node.node_id) is not None
|
||||
}
|
||||
created_remote_node_ids = {
|
||||
node.node_id for node in created if self.remote_collection.get_by_node_id(node.node_id) is not None
|
||||
}
|
||||
create_written = await self.commit_creates(node_type)
|
||||
await self.normalize_create_success_to_update_entry(node_type)
|
||||
if create_written:
|
||||
await self._reload_node_type(node_type, reason="create wrote data")
|
||||
await refresh_bind_data_id(
|
||||
node_type=node_type,
|
||||
local_collection=self.local_collection,
|
||||
remote_collection=self.remote_collection,
|
||||
binding_manager=self.binding_manager,
|
||||
local_node_ids=created_local_node_ids,
|
||||
remote_node_ids=created_remote_node_ids,
|
||||
)
|
||||
except Exception as exc:
|
||||
self.stats["failed"] += 1
|
||||
self._logger.error(f"❌ Strategy create failed but pipeline continues: {node_type} | {type(exc).__name__}: {exc}")
|
||||
|
||||
@@ -12,10 +12,11 @@ from ..config import (
|
||||
apply_config_overrides,
|
||||
build_config_from_file,
|
||||
)
|
||||
from ..logging import get_logger
|
||||
from .factory import create_pipeline_from_config
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
logger = get_logger(__name__)
|
||||
|
||||
|
||||
class _SharedStateSnapshot(TypedDict):
|
||||
|
||||
Reference in New Issue
Block a user