|
|
@ -26,13 +26,9 @@ import org.thingsboard.server.common.data.page.PageLink; |
|
|
import org.thingsboard.server.common.data.page.TimePageLink; |
|
|
import org.thingsboard.server.common.data.page.TimePageLink; |
|
|
import org.thingsboard.server.dao.edge.EdgeEventService; |
|
|
import org.thingsboard.server.dao.edge.EdgeEventService; |
|
|
|
|
|
|
|
|
import java.util.concurrent.TimeUnit; |
|
|
|
|
|
|
|
|
|
|
|
@AllArgsConstructor |
|
|
@AllArgsConstructor |
|
|
@Slf4j |
|
|
@Slf4j |
|
|
public class GeneralEdgeEventFetcher implements EdgeEventFetcher { |
|
|
public class GeneralEdgeEventFetcher implements EdgeEventFetcher { |
|
|
// Subtract from queueStartTs to ensure no data is lost due to potential misordering of edge events by created_time.
|
|
|
|
|
|
private static final long MISORDERING_COMPENSATION_MILLIS = TimeUnit.SECONDS.toMillis(60); |
|
|
|
|
|
|
|
|
|
|
|
private final Long queueStartTs; |
|
|
private final Long queueStartTs; |
|
|
private Long seqIdStart; |
|
|
private Long seqIdStart; |
|
|
@ -40,6 +36,8 @@ public class GeneralEdgeEventFetcher implements EdgeEventFetcher { |
|
|
private boolean seqIdNewCycleStarted; |
|
|
private boolean seqIdNewCycleStarted; |
|
|
private Long maxReadRecordsCount; |
|
|
private Long maxReadRecordsCount; |
|
|
private final EdgeEventService edgeEventService; |
|
|
private final EdgeEventService edgeEventService; |
|
|
|
|
|
// Subtract from queueStartTs to ensure no data is lost due to potential misordering of edge events by created_time.
|
|
|
|
|
|
private final long misorderingCompensationMillis; |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public PageLink getPageLink(int pageSize) { |
|
|
public PageLink getPageLink(int pageSize) { |
|
|
@ -48,7 +46,7 @@ public class GeneralEdgeEventFetcher implements EdgeEventFetcher { |
|
|
0, |
|
|
0, |
|
|
null, |
|
|
null, |
|
|
null, |
|
|
null, |
|
|
queueStartTs > 0 ? queueStartTs - MISORDERING_COMPENSATION_MILLIS : 0, |
|
|
queueStartTs > 0 ? queueStartTs - misorderingCompensationMillis : 0, |
|
|
System.currentTimeMillis()); |
|
|
System.currentTimeMillis()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|