net.i2p.router.tasks

## Class ReadConfigJob

- java.lang.Object
- - net.i2p.router.JobImpl
  - - net.i2p.router.tasks.ReadConfigJob

- All Implemented Interfaces:
    Job

      public class ReadConfigJob
      extends JobImpl

  Simply read the router config periodically, so that the user may make config changes externally. This isn't advertised as a feature, but it could be used, for example, to change bandwidth limits at certain times of day. Unfortunately it will also read the file back in every time the router writes it. We must keep this enabled, as it's the only way for people to set routerconsole.advanced=true without restarting.

- - ### Field Summary

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

      `_id`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ReadConfigJob(RouterContext ctx)` Create a new configuration reader job.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getName()` Get the name of this job.
    `boolean` | `isAdvanced()` Check if advanced console mode is enabled.
    `void` | `runJob()` Check for and reload router configuration if file has changed.

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

    - #### ReadConfigJob

          public ReadConfigJob(RouterContext ctx)

      Create a new configuration reader job.
      Parameters:
        `ctx` - router context for accessing configuration and clock

  - ### Method Detail

    - #### getName

          public String getName()

      Get the name of this job.
      Returns:
        job name for logging and identification

    - #### isAdvanced

          public boolean isAdvanced()

      Check if advanced console mode is enabled.
      Returns:
        true if routerconsole.advanced property is true

    - #### runJob

          public void runJob()

      Check for and reload router configuration if file has changed. This job runs periodically to detect external configuration changes. If the router.config file has been modified since last check, it will be reloaded and the last read timestamp updated. The check interval varies based on console mode:
      - Normal mode: every 60 seconds
      - Advanced mode: every 90 seconds
      Note: This will also trigger when the router itself writes the config file, but that's acceptable behavior.