private final void pulseSendNewConsensus() {
report(getLabel(), () -> concatReportMessage("item processor for item: ",
itemId, " from parcel: ", parcelId,
" :: pulseSendNewConsensus, state ", processingState, " itemState: ", getState()),
DatagramAdapter.VerboseLevel.BASE);
if(processingState.canContinue()) {
processingState = ItemProcessingState.SENDING_CONSENSUS;
synchronized (mutex) {
if(consensusReceivedChecker == null) {
List<Integer> periodsMillis = config.getConsensusReceivedCheckTime();
consensusReceivedChecker = new RunnableWithDynamicPeriod(() -> sendNewConsensusNotification(),
periodsMillis,
executorService
);
consensusReceivedChecker.run();
}
}
}
}