fix(cloud): refresh directory during plugin startup

This commit is contained in:
dadachann
2026-08-19 16:22:08 +00:00
parent c4bad508d2
commit c3fe312a43
2 changed files with 13 additions and 3 deletions
+3 -3
View File
@@ -304,10 +304,10 @@ class Application:
async def run(self):
self.event_loop_monitor.start()
try:
if self.directory_projection_service is not None:
self.task_mgr.create_task(
if self.directory_projection_service is not None and getattr(self, "directory_projection_task", None) is None:
self.directory_projection_task = self.task_mgr.create_task(
self.directory_projection_service.run(),
name='cloud-directory-projection',
name="cloud-directory-projection",
scopes=[core_entities.LifecycleControlScope.APPLICATION],
)
if self.cloud_model_catalog_service is not None:
+10
View File
@@ -292,6 +292,16 @@ class BuildAppStage(stage.BootingStage):
async def runtime_disconnect_callback(connector: plugin_connector.PluginRuntimeConnector) -> None:
connector.schedule_reconnect()
if ap.directory_projection_service is not None:
# Keep the projection fresh while shared Runtime cold restore runs.
# BuildApp initializes the connector before Application.run() starts
# its long-lived tasks, so start the single refresh task here.
ap.directory_projection_task = ap.task_mgr.create_task(
ap.directory_projection_service.run(),
name="cloud-directory-projection",
scopes=[core_entities.LifecycleControlScope.APPLICATION],
)
plugin_connector_inst = plugin_connector.PluginRuntimeConnector(ap, runtime_disconnect_callback)
try:
await plugin_connector_inst.initialize()