From 603cb3e07c094f30e91f84d550fc595cb4346fd7 Mon Sep 17 00:00:00 2001 From: zqz Date: Tue, 1 Apr 2025 22:32:03 +0800 Subject: [PATCH] Signed-off-by: zqz Change-Id: I08c9b9b1ae636f24cd1610cd35daeebc66bb23d2 Signed-off-by: zqz Change-Id: Id62faa59a5a4f17f7a1cec4d61e7f13399a3a5af Signed-off-by: zqz --- .../service/rdb/rdb_service_impl.cpp | 21 +++++++++++++------ .../service/rdb/rdb_service_impl.h | 2 ++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp index c4123e299..cbbf4c1f2 100644 --- a/services/distributeddataservice/service/rdb/rdb_service_impl.cpp +++ b/services/distributeddataservice/service/rdb/rdb_service_impl.cpp @@ -812,6 +812,20 @@ void RdbServiceImpl::SetReturnParam(StoreMetaData &metadata, RdbSyncerParam &par param.haMode_ = metadata.haMode; } +void RdbServiceImpl::SaveLaunchInfo(StoreMetaData &meta) +{ + RemoteChangeEvent::DataInfo info; + info.bundleName = meta.bundleName; + info.deviceId = meta.deviceId; + info.userId = meta.user; + if (executors_ != nullptr) { + executors_->Schedule(ExecutorPool::INVALID_DELAY, [dataInfo = std::move(info)]() mutable { + auto evt = std::make_unique(RemoteChangeEvent::RDB_META_SAVE, std::move(dataInfo)); + EventCenter::GetInstance().PostEvent(std::move(evt)); + }); + } +} + int32_t RdbServiceImpl::AfterOpen(const RdbSyncerParam ¶m) { XCollie xcollie(__FUNCTION__, XCollie::XCOLLIE_LOG | XCollie::XCOLLIE_RECOVERY); @@ -833,12 +847,7 @@ int32_t RdbServiceImpl::AfterOpen(const RdbSyncerParam ¶m) MetaDataManager::GetInstance().SaveMeta(meta.GetKey(), meta, true); AutoLaunchMetaData launchData; if (!MetaDataManager::GetInstance().LoadMeta(meta.GetAutoLaunchKey(), launchData, true)) { - RemoteChangeEvent::DataInfo info; - info.bundleName = meta.bundleName; - info.deviceId = meta.deviceId; - info.userId = meta.user; - auto evt = std::make_unique(RemoteChangeEvent::RDB_META_SAVE, std::move(info)); - EventCenter::GetInstance().PostEvent(std::move(evt)); + SaveLaunchInfo(meta); } } diff --git a/services/distributeddataservice/service/rdb/rdb_service_impl.h b/services/distributeddataservice/service/rdb/rdb_service_impl.h index da3d154cf..e58c6618f 100755 --- a/services/distributeddataservice/service/rdb/rdb_service_impl.h +++ b/services/distributeddataservice/service/rdb/rdb_service_impl.h @@ -245,6 +245,8 @@ private: bool TryUpdateDeviceId(const RdbSyncerParam ¶m, const StoreMetaData &oldMeta, StoreMetaData &meta); + void SaveLaunchInfo(StoreMetaData &meta); + static Factory factory_; ConcurrentMap syncAgents_; std::shared_ptr executors_; -- Gitee