mirror of
https://github.com/bitcoin-s/bitcoin-s.git
synced 2025-03-15 20:30:17 +01:00
Refactor PeerFinder.peerConnectionScheduler() into method (#5377)
This commit is contained in:
parent
76e468c5c4
commit
75f6a3b4ec
1 changed files with 63 additions and 47 deletions
|
@ -112,7 +112,9 @@ case class PeerFinder(
|
|||
|
||||
private val isConnectionSchedulerRunning = new AtomicBoolean(false)
|
||||
|
||||
private lazy val peerConnectionScheduler: Cancellable =
|
||||
private[this] var peerConnectionCancellableOpt: Option[Cancellable] = None
|
||||
|
||||
private def peerConnectionScheduler(): Cancellable = {
|
||||
system.scheduler.scheduleWithFixedDelay(
|
||||
initialDelay = initialDelay,
|
||||
delay = nodeAppConfig.tryNextPeersInterval) { () =>
|
||||
|
@ -148,8 +150,10 @@ case class PeerFinder(
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override def start(): Future[PeerFinder] = {
|
||||
if (!isStarted.get()) {
|
||||
logger.info(
|
||||
s"Starting PeerFinder initialDelay=${initialDelay} paramPeers=$paramPeers")
|
||||
val start = System.currentTimeMillis()
|
||||
|
@ -166,7 +170,7 @@ case class PeerFinder(
|
|||
_peersToTry.pushAll(getPeersFromResources)
|
||||
_peersToTry.pushAll(dbNonCf)
|
||||
_peersToTry.pushAll(dbCf, priority = 1)
|
||||
peerConnectionScheduler //start scheduler
|
||||
peerConnectionCancellableOpt = Some(peerConnectionScheduler())
|
||||
|
||||
this
|
||||
}
|
||||
|
@ -174,7 +178,7 @@ case class PeerFinder(
|
|||
startedF
|
||||
} else {
|
||||
logger.info("Peer discovery disabled.")
|
||||
peerConnectionScheduler //start scheduler
|
||||
peerConnectionCancellableOpt = Some(peerConnectionScheduler())
|
||||
Future.successful(this)
|
||||
}
|
||||
|
||||
|
@ -183,6 +187,10 @@ case class PeerFinder(
|
|||
_ = logger.info(
|
||||
s"Done starting PeerFinder, it took ${System.currentTimeMillis() - start}ms")
|
||||
} yield peerFinder
|
||||
} else {
|
||||
logger.warn(s"PeerFinder already started")
|
||||
Future.successful(this)
|
||||
}
|
||||
}
|
||||
|
||||
def reconnect(peer: Peer): Future[Unit] = {
|
||||
|
@ -197,10 +205,12 @@ case class PeerFinder(
|
|||
}
|
||||
|
||||
override def stop(): Future[PeerFinder] = {
|
||||
if (isStarted.get()) {
|
||||
logger.info(s"Stopping PeerFinder")
|
||||
isStarted.set(false)
|
||||
//stop scheduler
|
||||
peerConnectionScheduler.cancel()
|
||||
peerConnectionCancellableOpt.map(_.cancel())
|
||||
peerConnectionCancellableOpt = None
|
||||
//delete try queue
|
||||
_peersToTry.clear()
|
||||
|
||||
|
@ -216,10 +226,16 @@ case class PeerFinder(
|
|||
}
|
||||
|
||||
stopF.failed.foreach { e =>
|
||||
logger.error(s"Failed to stop peer finder. Peers: ${_peerData.map(_._1)}",
|
||||
logger.error(
|
||||
s"Failed to stop peer finder. Peers: ${_peerData.map(_._1)}",
|
||||
e)
|
||||
}
|
||||
stopF
|
||||
} else {
|
||||
logger.warn(s"PeerFinder already stopped")
|
||||
Future.successful(this)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/** creates and initialises a new test peer */
|
||||
|
|
Loading…
Add table
Reference in a new issue