Запрос о стойкости и проверке статуса завершения проекцииJAVA

Программисты JAVA общаются здесь
Anonymous
Запрос о стойкости и проверке статуса завершения проекции

Сообщение Anonymous »

Есть ли способ, которым я могу каким-то образом проверить статус проекции для приложения Pekko/Spring Boot, так как я хочу запустить следующее событие только после того, как одна проекция дает статус OK.

Код: Выделить всё

private CommandHandlerWithReplyBuilderByState onEmpty() {
return newCommandHandlerWithReplyBuilder()
.forState(State::isEmpty)
.onCommand(Create.class, (state, cmd) -> {
if(cmd.isInitialAutoStart()) {
List events = new ArrayList();
events.add(new CampaignCreated(cmd.getCampaignId(),
OffsetDateTime.now(ZoneOffset.UTC), cmd.getName(),
cmd.getDomainGroupId(), cmd.getDomainIdWithCount(), cmd.getContactListId(),
cmd.getContactSegmentId(), cmd.getRouteId(),
cmd.getOfferId(), cmd.getVertical(),
cmd.getContactSkipOffset(), cmd.getSendSpeed(),
cmd.getCampaignOptimization(), cmd.getDataTriggers(),
cmd.getDegreeOfParallelism(), cmd.getContactFilter(),
cmd.getMessageTemplate(), cmd.getMessageTemplateId(),
cmd.getSaveProgressEvery(), cmd.isInitialAutoStart(), cmd.getCampaignScheduledTime(), cmd.getStartOption(),
cmd.getScheduleChronExpression(),
cmd.getWebHooks(), cmd.getSliceSize(), cmd.getNetworkCarrierFilter()));
events.add(new CampaignResuming(cmd.getCampaignId(), OffsetDateTime.now(ZoneOffset.UTC), 0));
return Effect()
.persist(events)
.thenRun(newState -> {
this.campaignRunner = spawnCampaignRunner(newState, this.context,
this.campaignService, this.outboundCampaignMessageService, this.contactService, this.suppressedContactService,
this.leadService, this.domainGroupService, this.domainService, this.offerService,
this.routeService, this.clickService, this.webClientBuilder);
})
.thenReply(cmd.getReplyTo(), newState -> StatusReply.ack());
}
return Effect().persist(new CampaignCreated(cmd.getCampaignId(),
OffsetDateTime.now(ZoneOffset.UTC), cmd.getName(),
cmd.getDomainGroupId(),cmd.getDomainIdWithCount(), cmd.getContactListId(),
cmd.getContactSegmentId(), cmd.getRouteId(),
cmd.getOfferId(), cmd.getVertical(),
cmd.getContactSkipOffset(), cmd.getSendSpeed(),
cmd.getCampaignOptimization(), cmd.getDataTriggers(),
cmd.getDegreeOfParallelism(), cmd.getContactFilter(),
cmd.getMessageTemplate(), cmd.getMessageTemplateId(),
cmd.getSaveProgressEvery(), false, cmd.getCampaignScheduledTime(), cmd.getStartOption(),
cmd.getScheduleChronExpression(),
cmd.getWebHooks(), cmd.getSliceSize(), cmd.getNetworkCarrierFilter()))
.thenReply(cmd.getReplyTo(), newState -> StatusReply.ack());
})
.onCommand(Edit.class, (state, cmd) -> Effect().reply(cmd.getReplyTo(), StatusReply.error("Campaign doesn't exists.")))
.onCommand(Pause.class, (state, cmd) -> Effect().reply(cmd.getReplyTo(), StatusReply.error("Campaign doesn't exists.")))
.onCommand(ProcessCompleted.class, (state, cmd) -> Effect().reply(cmd.getReplyTo(), StatusReply.error("Campaign doesn't exists.")))
.onCommand(ProcessFailed.class, (state, cmd) -> Effect().reply(cmd.getReplyTo(), StatusReply.error("Campaign doesn't exists.")))
.onCommand(Resume.class, (state, cmd) -> Effect().reply(cmd.getReplyTo(), StatusReply.error("Campaign doesn't exists.")))
.onCommand(ProcessSaveProgress.class, (state, cmd) -> Effect().reply(cmd.getReplyTo(), StatusReply.error("Campaign doesn't exists.")))
.onCommand(ProcessRunning.class, (state, cmd) -> Effect().none().thenNoReply())
.onCommand(ProcessPaused.class, (state, cmd) -> Effect().none().thenNoReply())
.onCommand(AddCustomRevenue.class, (state, cmd) ->  Effect().reply(cmd.getReplyTo(), StatusReply.error("Campaign doesn't exists.")));
}
Здесь я хочу подождать, пока Campaine Craited будет настойчивой, и прогноз будет завершена, только тогда я хочу возобновить кампанию и Spawn Campaignner.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... atus-check

Вернуться в «JAVA»