Search in sources :

Example 1 with DumpTask

use of com.alibaba.nacos.config.server.service.dump.task.DumpTask in project nacos by alibaba.

the class DumpService method dump.

/**
 * Add DumpTask to TaskManager, it will execute asynchronously.
 */
public void dump(String dataId, String group, String tenant, String tag, long lastModified, String handleIp, boolean isBeta) {
    String groupKey = GroupKey2.getKey(dataId, group, tenant);
    String taskKey = String.join("+", dataId, group, tenant, String.valueOf(isBeta), tag);
    dumpTaskMgr.addTask(taskKey, new DumpTask(groupKey, tag, lastModified, handleIp, isBeta));
    DUMP_LOG.info("[dump-task] add task. groupKey={}, taskKey={}", groupKey, taskKey);
}
Also used : DumpTask(com.alibaba.nacos.config.server.service.dump.task.DumpTask)

Example 2 with DumpTask

use of com.alibaba.nacos.config.server.service.dump.task.DumpTask in project nacos by alibaba.

the class DumpProcessor method process.

@Override
public boolean process(NacosTask task) {
    final PersistService persistService = dumpService.getPersistService();
    DumpTask dumpTask = (DumpTask) task;
    String[] pair = GroupKey2.parseKey(dumpTask.getGroupKey());
    String dataId = pair[0];
    String group = pair[1];
    String tenant = pair[2];
    long lastModified = dumpTask.getLastModified();
    String handleIp = dumpTask.getHandleIp();
    boolean isBeta = dumpTask.isBeta();
    String tag = dumpTask.getTag();
    ConfigDumpEvent.ConfigDumpEventBuilder build = ConfigDumpEvent.builder().namespaceId(tenant).dataId(dataId).group(group).isBeta(isBeta).tag(tag).lastModifiedTs(lastModified).handleIp(handleIp);
    if (isBeta) {
        // if publish beta, then dump config, update beta cache
        ConfigInfo4Beta cf = persistService.findConfigInfo4Beta(dataId, group, tenant);
        build.remove(Objects.isNull(cf));
        build.betaIps(Objects.isNull(cf) ? null : cf.getBetaIps());
        build.content(Objects.isNull(cf) ? null : cf.getContent());
        build.encryptedDataKey(Objects.isNull(cf) ? null : cf.getEncryptedDataKey());
        return DumpConfigHandler.configDump(build.build());
    }
    if (StringUtils.isBlank(tag)) {
        ConfigInfo cf = persistService.findConfigInfo(dataId, group, tenant);
        build.remove(Objects.isNull(cf));
        build.content(Objects.isNull(cf) ? null : cf.getContent());
        build.type(Objects.isNull(cf) ? null : cf.getType());
        build.encryptedDataKey(Objects.isNull(cf) ? null : cf.getEncryptedDataKey());
    } else {
        ConfigInfo4Tag cf = persistService.findConfigInfo4Tag(dataId, group, tenant, tag);
        build.remove(Objects.isNull(cf));
        build.content(Objects.isNull(cf) ? null : cf.getContent());
    }
    return DumpConfigHandler.configDump(build.build());
}
Also used : DumpTask(com.alibaba.nacos.config.server.service.dump.task.DumpTask) ConfigDumpEvent(com.alibaba.nacos.config.server.model.event.ConfigDumpEvent) ConfigInfo4Beta(com.alibaba.nacos.config.server.model.ConfigInfo4Beta) ConfigInfo4Tag(com.alibaba.nacos.config.server.model.ConfigInfo4Tag) PersistService(com.alibaba.nacos.config.server.service.repository.PersistService) ConfigInfo(com.alibaba.nacos.config.server.model.ConfigInfo)

Aggregations

DumpTask (com.alibaba.nacos.config.server.service.dump.task.DumpTask)2 ConfigInfo (com.alibaba.nacos.config.server.model.ConfigInfo)1 ConfigInfo4Beta (com.alibaba.nacos.config.server.model.ConfigInfo4Beta)1 ConfigInfo4Tag (com.alibaba.nacos.config.server.model.ConfigInfo4Tag)1 ConfigDumpEvent (com.alibaba.nacos.config.server.model.event.ConfigDumpEvent)1 PersistService (com.alibaba.nacos.config.server.service.repository.PersistService)1