Modify TargetPollEvent to be per batch update (not per target) (#2965)
* Modify TargetPollEvent to be per batch update (not per target) Signed-off-by: strailov <Stanislav.Trailov@bosch.io> * Get use of remote event's timestame for targetPollEvent Signed-off-by: strailov <Stanislav.Trailov@bosch.io> * Revert "Get use of remote event's timestame for targetPollEvent" This reverts commit 27e3b740e2bb0b02cad1d5a6137db7928901f069. --------- Signed-off-by: strailov <Stanislav.Trailov@bosch.io>
This commit is contained in:
committed by
GitHub
parent
05058b9827
commit
f2615fe812
@@ -10,6 +10,8 @@
|
||||
package org.eclipse.hawkbit.repository.event.remote;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
@@ -29,16 +31,22 @@ public class TargetPollEvent extends RemoteTenantAwareEvent {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String controllerId;
|
||||
private String targetAddress;
|
||||
private long lastTargetPoll;
|
||||
private List<String> controllerIds;
|
||||
|
||||
public TargetPollEvent(final String controllerId, final String tenant) {
|
||||
super(tenant, controllerId);
|
||||
this.controllerId = controllerId;
|
||||
public TargetPollEvent(final List<String> controllerIds, final long lastTargetPoll, final String tenant) {
|
||||
super(tenant, tenant); // source is tenant
|
||||
this.lastTargetPoll = lastTargetPoll;
|
||||
this.controllerIds = Collections.unmodifiableList(controllerIds);
|
||||
}
|
||||
|
||||
public TargetPollEvent(final String controllerId, final long timestamp, final String tenant) {
|
||||
this(List.of(controllerId), timestamp, tenant);
|
||||
}
|
||||
|
||||
public TargetPollEvent(final Target target) {
|
||||
this(target.getControllerId(), target.getTenant());
|
||||
this(List.of(target.getControllerId()), target.getLastTargetQuery(), target.getTenant()); // here expect last target query to be already set
|
||||
this.targetAddress = target.getAddress();
|
||||
}
|
||||
}
|
||||
@@ -712,9 +712,10 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont
|
||||
Constants.MAX_ENTRIES_IN_STATEMENT);
|
||||
|
||||
pollChunks.forEach(chunk -> {
|
||||
setLastTargetQuery(tenant, java.lang.System.currentTimeMillis(), chunk);
|
||||
chunk.forEach(controllerId -> afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher()
|
||||
.publishEvent(new TargetPollEvent(controllerId, tenant))));
|
||||
final long lastTargetQuery = java.lang.System.currentTimeMillis();
|
||||
setLastTargetQuery(tenant, lastTargetQuery, chunk);
|
||||
afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher()
|
||||
.publishEvent(new TargetPollEvent(chunk, lastTargetQuery, tenant)));
|
||||
});
|
||||
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user