net.i2p.router

## Interface Job

- All Known Subinterfaces:
    ReplyJob
  All Known Implementing Classes:
    Analysis, BootCommSystemJob, BootNetworkDbJob, BootPeerManagerJob, BuildTrustedLinksJob, CreateRouterInfoJob, CreateSessionJob, DirectLookupJob, DirectLookupMatchJob, ExpireJob, ExpireJobManager, ExpireLeasesJob, ExpireRoutersJob, ExploreJob, FloodfillMonitorJob, FloodfillRouterInfoFloodJob, FloodfillStoreJob, FloodfillVerifyStoreJob, FloodOnlyLookupMatchJob, FloodOnlyLookupTimeoutJob, FloodOnlySearchJob, FloodSearchJob, GetBidsJob, HandleDatabaseLookupMessageJob, HandleFloodfillDatabaseLookupMessageJob, HandleFloodfillDatabaseStoreMessageJob, HandleGarlicMessageJob, IterativeFollowupJob, IterativeLookupJob, IterativeSearchJob, IterativeTimeoutJob, JobImpl, LoadClientAppsJob, LoadRouterInfoJob, LookupDestJob, MessageReceivedJob, NetDbCachingJob, OutboundClientMessageOneShotJob, PeerTestJob, PersistRouterInfoJob, PublishLocalRouterInfoJob, ReadConfigJob, RebuildRouterInfoJob, RefreshRoutersJob, ReportAbuseJob, RepublishLeaseSetJob, RequestLeaseSetJob, SearchJob, SearchJob.FailedJob, SearchReplyJob, SearchUpdateReplyFoundJob, SendMessageDirectJob, SingleLookupJob, SingleSearchJob, StartAcceptingClientsJob, StartExplorersJob, StartupJob, StoreJob, TestJob, UpdateRoutingKeyModifierJob

      public interface Job

  Interface for router-internal executable tasks. Defines job timing, execution, and failure handling for scheduled operations within the job queue system. For use by the router only. Not to be used by applications or plugins.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `dropped()` the router is extremely overloaded, so this job has been dropped.
    `long` | `getJobId()` Unique id for this job.
    `String` | `getName()` Descriptive name of the task
    `JobTiming` | `getTiming()` Timing criteria for the task
    `void` | `runJob()` Actually perform the task.

- - ### Method Detail

    - #### dropped

          void dropped()

      the router is extremely overloaded, so this job has been dropped. if for some reason the job *must* do some cleanup / requeueing of other tasks, it should do so here.

    - #### getJobId

          long getJobId()

      Unique id for this job.
      Returns:
        the unique job id

    - #### getName

          String getName()

      Descriptive name of the task
      Returns:
        the descriptive name of the task

    - #### getTiming

          JobTiming getTiming()

      Timing criteria for the task
      Returns:
        the job timing object

    - #### runJob

          void runJob()

      Actually perform the task. This call blocks until the Job is complete.