net.i2p.router.networkdb.kademlia

## Class ExpireRoutersJob

- java.lang.Object
- - net.i2p.router.JobImpl
  - - net.i2p.router.networkdb.kademlia.ExpireRoutersJob

- All Implemented Interfaces:
    Job

      class ExpireRoutersJob
      extends JobImpl

  Go through the routing table pick routers that are out of date, but don't expire routers we're actively connected to. We could in the future use profile data, netdb total size, a Kademlia XOR distance, or other criteria to minimize netdb size, but for now we just use _facade's validate(), which is a sliding expiration based on netdb size.

- - ### Field Summary

    - ### Fields inherited from class net.i2p.router.JobImpl

      `_id`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ExpireRoutersJob(RouterContext ctx, KademliaNetworkDatabaseFacade facade)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getName()` Descriptive name of the task
    `void` | `runJob()` Actually perform the task.

    - ### Methods inherited from class net.i2p.router.JobImpl

      `dropped, getContext, getJobId, getMadeReadyOn, getTiming, madeReady, requeue, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ExpireRoutersJob

          public ExpireRoutersJob(RouterContext ctx,
                                  KademliaNetworkDatabaseFacade facade)

  - ### Method Detail

    - #### getName

          public String getName()

      Description copied from interface: `Job`
      Descriptive name of the task
      Returns:
        the 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.