@GetMapping("/hook")
public Mono<DataDto> publisher(@PathVariable String account) {
var currentSession = service.load(account); // Наверное блокирующий метод
if(currentSession.isEmpty()) { // блокирующий метод
return Mono.empty();
}
try {
Thread.sleep(3000); // блокирующий метод
for(int i = 0; i < 4; i++) { // какая-то переменная i, которая не используется... Зачем?
var tempSession = service.load(account); // Наверное блокирующий метод
if (currentSession.get().getTimestamp() < tempSession.get().getTimestamp()) { // блокирующий метод
Mono.just(tempSession.get().dto()); // выглядит довольно странно
}
Thread.sleep(3000); // блокирующий метод
}
Mono.just(currentSession.get().dto());
} catch (Exception e) {
log.error("error waiting new data", e);
}
throw new RuntimeException("dvferfge");
}
public void run() {
if(!doScan) { // Сам запускается и сам знает, что не надо запускать. Думаю, с него хватит.
return;
}
long currentBlock = stateService.getCurrentBlock(); // наверное, кому-то понятно, что такое currentBlock.
// ^^ почему не var?
long headBlock = api.getDynamicGlobalProperties().orElseThrow().getHeadBlockNumber(); // -//-
// ^^ почему не var?
if(currentBlock == 0) {
currentBlock = headBlock - 2; // тут снова что-то о currentBlock
}
while(++currentBlock < headBlock) { // Цикл?!
log.info("process block {}", currentBlock); // Логирование не в счет
var block = api.getBlock(currentBlock).orElseThrow(); // еще какой-то блок.
blockProcessor.process(currentBlock, block); // и еще какой-то процессор
}
}
Могу конечно сам метод привести, но толку если он вызывает несколько других?
https://github.com/anjlab/android-inapp-billing-v3...