This is an automated email from the ASF dual-hosted git repository. marat pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
The following commit(s) were added to refs/heads/main by this push: new b752227 Fix #509 b752227 is described below commit b7522272aee4803152a6752be27a245fa3579636 Author: Marat Gubaidullin <marat.gubaidul...@gmail.com> AuthorDate: Tue Nov 1 08:21:02 2022 -0400 Fix #509 --- .../org/apache/camel/karavan/service/StatusService.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/karavan-app/src/main/java/org/apache/camel/karavan/service/StatusService.java b/karavan-app/src/main/java/org/apache/camel/karavan/service/StatusService.java index 07b9132..7f5b746 100644 --- a/karavan-app/src/main/java/org/apache/camel/karavan/service/StatusService.java +++ b/karavan-app/src/main/java/org/apache/camel/karavan/service/StatusService.java @@ -31,7 +31,9 @@ import org.jboss.logging.Logger; import javax.enterprise.context.ApplicationScoped; import javax.inject.Inject; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -55,7 +57,7 @@ public class StatusService { @ConfigProperty(name = "karavan.environment") String environment; - private long lastCollect = 0; + private Map<String, Long> lastCollect = new HashMap<>(); private ObjectMapper mapper = new ObjectMapper(); @Inject Vertx vertx; @@ -74,21 +76,22 @@ public class StatusService { @ConsumeEvent(value = CMD_COLLECT_PROJECT_STATUS, blocking = true, ordered = true) public void collectProjectStatus(String projectId) { - if ((System.currentTimeMillis() - lastCollect) > threshold) { + if ((System.currentTimeMillis() - lastCollect.getOrDefault(projectId, 0L)) > threshold) { collectStatusesForProject(projectId); - lastCollect = System.currentTimeMillis(); + lastCollect.put(projectId, System.currentTimeMillis()); } } @ConsumeEvent(value = CMD_COLLECT_ALL_STATUSES, blocking = true, ordered = true) public void collectAllStatuses(String data) { - if ((System.currentTimeMillis() - lastCollect) > threshold) { + String all = "ALL_PROJECTS"; + if ((System.currentTimeMillis() - lastCollect.getOrDefault(all, 0L)) > threshold) { infinispanService.getDeploymentStatuses().forEach(d -> eventBus.publish(CMD_COLLECT_PROJECT_STATUS, d.getName())); - lastCollect = System.currentTimeMillis(); + lastCollect.put(all, System.currentTimeMillis()); } } - @ConsumeEvent(value = CMD_SAVE_STATUS, blocking = true, ordered = true) + @ConsumeEvent(value = CMD_SAVE_STATUS, blocking = true) public void saveStatus(String status) { try { CamelStatus cs = mapper.readValue(status, CamelStatus.class);