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;
|
package org.eclipse.hawkbit.repository.event.remote;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@@ -29,16 +31,22 @@ public class TargetPollEvent extends RemoteTenantAwareEvent {
|
|||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private String controllerId;
|
|
||||||
private String targetAddress;
|
private String targetAddress;
|
||||||
|
private long lastTargetPoll;
|
||||||
|
private List<String> controllerIds;
|
||||||
|
|
||||||
public TargetPollEvent(final String controllerId, final String tenant) {
|
public TargetPollEvent(final List<String> controllerIds, final long lastTargetPoll, final String tenant) {
|
||||||
super(tenant, controllerId);
|
super(tenant, tenant); // source is tenant
|
||||||
this.controllerId = controllerId;
|
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) {
|
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();
|
this.targetAddress = target.getAddress();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -712,9 +712,10 @@ public class JpaControllerManagement extends JpaActionManagement implements Cont
|
|||||||
Constants.MAX_ENTRIES_IN_STATEMENT);
|
Constants.MAX_ENTRIES_IN_STATEMENT);
|
||||||
|
|
||||||
pollChunks.forEach(chunk -> {
|
pollChunks.forEach(chunk -> {
|
||||||
setLastTargetQuery(tenant, java.lang.System.currentTimeMillis(), chunk);
|
final long lastTargetQuery = java.lang.System.currentTimeMillis();
|
||||||
chunk.forEach(controllerId -> afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher()
|
setLastTargetQuery(tenant, lastTargetQuery, chunk);
|
||||||
.publishEvent(new TargetPollEvent(controllerId, tenant))));
|
afterCommit(() -> EventPublisherHolder.getInstance().getEventPublisher()
|
||||||
|
.publishEvent(new TargetPollEvent(chunk, lastTargetQuery, tenant)));
|
||||||
});
|
});
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user