fixed head subscription recovery
This commit is contained in:
@@ -104,6 +104,8 @@ class GrpcHead(
|
|||||||
|
|
||||||
blocks = blocks.onErrorContinue { err, _ ->
|
blocks = blocks.onErrorContinue { err, _ ->
|
||||||
log.error("Head subscription error. ${err.javaClass.name}:${err.message}", err)
|
log.error("Head subscription error. ${err.javaClass.name}:${err.message}", err)
|
||||||
|
}.doOnNext{
|
||||||
|
log.info("Received block ${it.height}")
|
||||||
}
|
}
|
||||||
|
|
||||||
headSubscription = super.follow(blocks)
|
headSubscription = super.follow(blocks)
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ import org.apache.commons.lang3.exception.ExceptionUtils
|
|||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
import reactor.core.Disposable
|
import reactor.core.Disposable
|
||||||
import reactor.core.publisher.Flux
|
import reactor.core.publisher.Flux
|
||||||
import java.net.ConnectException
|
import java.io.IOException
|
||||||
import java.time.Duration
|
import java.time.Duration
|
||||||
import java.util.concurrent.atomic.AtomicReference
|
import java.util.concurrent.atomic.AtomicReference
|
||||||
import java.util.concurrent.locks.ReentrantLock
|
import java.util.concurrent.locks.ReentrantLock
|
||||||
@@ -92,7 +92,7 @@ class GrpcUpstreams(
|
|||||||
.flatMap {
|
.flatMap {
|
||||||
client.describe(BlockchainOuterClass.DescribeRequest.newBuilder().build())
|
client.describe(BlockchainOuterClass.DescribeRequest.newBuilder().build())
|
||||||
}.onErrorContinue { t, _ ->
|
}.onErrorContinue { t, _ ->
|
||||||
if (ExceptionUtils.indexOfType(t, ConnectException::class.java) >= 0) {
|
if (ExceptionUtils.indexOfType(t, IOException::class.java) >= 0) {
|
||||||
log.warn("gRPC upstream $host:$port is unavailable. (${t.javaClass}: ${t.message})")
|
log.warn("gRPC upstream $host:$port is unavailable. (${t.javaClass}: ${t.message})")
|
||||||
known.values.forEach {
|
known.values.forEach {
|
||||||
it.setStatus(UpstreamAvailability.UNAVAILABLE)
|
it.setStatus(UpstreamAvailability.UNAVAILABLE)
|
||||||
|
|||||||
Reference in New Issue
Block a user