net.i2p.router.networkdb.kademlia

## Class StartExplorersJob

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

- All Implemented Interfaces:
    Job

      class StartExplorersJob
      extends JobImpl

  This job initiates exploration of the network database by selecting keys to explore and queuing ExploreJobs up to a maximum per run. It adjusts the exploration frequency and intensity based on network conditions such as number of known routers, floodfills, system load, and message delays.

  For hidden routers, this job helps maintain integration in the network by aggressively exploring when known peers are few and reducing load otherwise. The job is scheduled to run repeatedly with delays adapted to system load and network state.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `(package private) static int` | `LOW_FFS`
    `(package private) static String` | `PROP_EXPLORE_BUCKETS`
    `(package private) static String` | `PROP_EXPLORE_DELAY`
    `(package private) static String` | `PROP_FORCE_EXPLORE`

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

      `_id`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StartExplorersJob(RouterContext context, KademliaNetworkDatabaseFacade facade)` Constructs a StartExplorersJob to manage peer exploration scheduling.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getName()` Descriptive name of the task
    `void` | `runJob()` Runs the job, determines if exploration should occur, how many explorations to run, selects keys to explore, creates and queues ExploreJobs, and schedules the next run.

    - ### 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`

- - ### Field Detail

    - #### LOW_FFS

          static final int LOW_FFS

      See Also:
        Constant Field Values

    - #### PROP_EXPLORE_BUCKETS

          static final String PROP_EXPLORE_BUCKETS

      See Also:
        Constant Field Values

    - #### PROP_EXPLORE_DELAY

          static final String PROP_EXPLORE_DELAY

      See Also:
        Constant Field Values

    - #### PROP_FORCE_EXPLORE

          static final String PROP_FORCE_EXPLORE

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### StartExplorersJob

          public StartExplorersJob(RouterContext context,
                                   KademliaNetworkDatabaseFacade facade)

      Constructs a StartExplorersJob to manage peer exploration scheduling.
      Parameters:
        `context` - the router context
        `facade` - the network database facade to interact with peer data

  - ### 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()

      Runs the job, determines if exploration should occur, how many explorations to run, selects keys to explore, creates and queues ExploreJobs, and schedules the next run.