net.i2p.router.networkdb.kademlia
Class ExpireRoutersJob

java.lang.Object
  extended by net.i2p.router.JobImpl
      extended by net.i2p.router.networkdb.kademlia.ExpireRoutersJob
All Implemented Interfaces:
Job

 class ExpireRoutersJob
extends JobImpl

Go through the routing table pick routers that are performing poorly or is out of date, but don't expire routers we're actively tunneling through. If a peer is performing worse than some threshold (via profile.rankLiveliness) drop it and don't ask any questions. If a peer isn't ranked really poorly, but we just haven't heard from it in a while, drop it and add it to the set of keys we want the netDb to explore.


Field Summary
static long EXPIRE_DELAY
          If a routerInfo structure isn't updated within an hour, drop it and search for a later version.
 
Constructor Summary
ExpireRoutersJob(RouterContext ctx, KademliaNetworkDatabaseFacade facade)
           
 
Method Summary
 java.lang.String getName()
          Descriptive name of the task
 void runJob()
          Actually perform the task.
 
Methods inherited from class net.i2p.router.JobImpl
dropped, getAddedBy, getContext, getJobId, getMadeReadyOn, getTiming, madeReady, requeue, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

EXPIRE_DELAY

public static final long EXPIRE_DELAY
If a routerInfo structure isn't updated within an hour, drop it and search for a later version. This value should be large enough to deal with the Router.CLOCK_FUDGE_FACTOR.

See Also:
Constant Field Values
Constructor Detail

ExpireRoutersJob

public ExpireRoutersJob(RouterContext ctx,
                        KademliaNetworkDatabaseFacade facade)
Method Detail

getName

public java.lang.String getName()
Description copied from interface: Job
Descriptive name of the task


runJob

public void runJob()
Description copied from interface: Job
Actually perform the task. This call blocks until the Job is complete.