Class RefreshRoutersJob

  • All Implemented Interfaces:
    Job

    class RefreshRoutersJob
    extends JobImpl
    Go through all the routers once, after startup, and refetch their router infos. This should be run once after startup (and preferably after any reseed is complete, but we don't have any indication when that is). This will help routers that start after being shutdown for many days or weeks, as well as newly-reseeded routers, since validate() in KNDF doesn't start failing and refetching until the router has been up for an hour. To improve integration even more, we fetch the floodfills first. Ideally this should complete within the first half-hour of uptime. As of 0.9.45, periodically rerun, to maintain a minimum number of floodfills, primarily for hidden mode. StartExplorersJob will get us to about 100 ffs and maintain that for a while, but they will eventually start to expire. Use this to get us to 300 or more. Each pass of this will gain us about 150 ffs. If we have more than 300 ffs, we just requeue to check later. Otherwise this will grow our netdb almost unbounded, as it prevents most normal expiration.
    Since:
    0.8.8
    • Method Detail

      • getName

        public 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.