fix: Don't load _all_ the workspaces into memory (#40810)

This commit is contained in:
Shrikant Sharat Kandula 2025-05-30 15:12:50 +05:30 committed by GitHub
parent 39636498ce
commit fccba12b4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2,7 +2,6 @@ package com.appsmith.server.helpers.ce;
import com.appsmith.server.configurations.CloudServicesConfig;
import com.appsmith.server.domains.Plugin;
import com.appsmith.server.domains.Workspace;
import com.appsmith.server.dtos.ResponseDTO;
import com.appsmith.server.plugins.base.PluginService;
import com.appsmith.server.services.ConfigService;
@ -86,23 +85,23 @@ public class PluginScheduledTaskUtilsCEImpl implements PluginScheduledTaskUtilsC
// Save new data for this plugin,
// then make sure to install to workspaces in case the default installation flag changed
final Mono<List<Workspace>> updatedPluginsWorkspaceFlux = pluginService
final Mono<Void> updatePluginsStep = pluginService
.saveAll(updatablePlugins)
.filter(Plugin::getDefaultInstall)
.collectList()
.flatMapMany(pluginService::installDefaultPlugins)
.collectList();
.then();
// Create plugin,
// then install to all workspaces if default installation is turned on
final Mono<List<Workspace>> workspaceFlux = Flux.fromIterable(insertablePlugins)
final Mono<Void> insertPluginsStep = Flux.fromIterable(insertablePlugins)
.flatMap(pluginService::create)
.filter(Plugin::getDefaultInstall)
.collectList()
.flatMapMany(pluginService::installDefaultPlugins)
.collectList();
.then();
return updatedPluginsWorkspaceFlux.zipWith(workspaceFlux).then();
return updatePluginsStep.then(insertPluginsStep).then();
});
}