mirror of
https://github.com/Qortal/qortal.git
synced 2025-06-02 06:26:59 +00:00
Improve pruning of old peers
This commit is contained in:
parent
9435e9576a
commit
976ea97af1
@ -329,7 +329,7 @@ public class Network extends Thread {
|
|||||||
// we last managed to connect over a week ago
|
// we last managed to connect over a week ago
|
||||||
final long now = NTP.getTime();
|
final long now = NTP.getTime();
|
||||||
Predicate<PeerData> isNotOldPeer = peerData -> {
|
Predicate<PeerData> isNotOldPeer = peerData -> {
|
||||||
if (peerData.getLastAttempted() == null || peerData.getLastAttempted() > now - OLD_PEER_ATTEMPTED_PERIOD)
|
if (peerData.getLastAttempted() == null || peerData.getLastAttempted() < now - OLD_PEER_ATTEMPTED_PERIOD)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (peerData.getLastConnected() == null || peerData.getLastConnected() > now - OLD_PEER_CONNECTION_PERIOD)
|
if (peerData.getLastConnected() == null || peerData.getLastConnected() > now - OLD_PEER_CONNECTION_PERIOD)
|
||||||
@ -340,6 +340,16 @@ public class Network extends Thread {
|
|||||||
|
|
||||||
peers.removeIf(isNotOldPeer);
|
peers.removeIf(isNotOldPeer);
|
||||||
|
|
||||||
|
// Don't consider already connected peers (simple address match)
|
||||||
|
Predicate<PeerData> isConnectedPeer = peerData -> {
|
||||||
|
PeerAddress peerAddress = peerData.getAddress();
|
||||||
|
return this.connectedPeers.stream().anyMatch(peer -> peer.getPeerData().getAddress().equals(peerAddress));
|
||||||
|
};
|
||||||
|
|
||||||
|
synchronized (this.connectedPeers) {
|
||||||
|
peers.removeIf(isConnectedPeer);
|
||||||
|
}
|
||||||
|
|
||||||
for (PeerData peerData : peers) {
|
for (PeerData peerData : peers) {
|
||||||
LOGGER.debug(String.format("Deleting old peer %s from repository", peerData.getAddress().toString()));
|
LOGGER.debug(String.format("Deleting old peer %s from repository", peerData.getAddress().toString()));
|
||||||
repository.getNetworkRepository().delete(peerData.getAddress());
|
repository.getNetworkRepository().delete(peerData.getAddress());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user