Agenda - v6.0.0
    Preparing search index...

    Interface JobRepository

    Database-agnostic job repository interface. Implementations can be created for MongoDB, PostgreSQL, etc.

    interface JobRepository {
        connect(): Promise<void>;
        disableJobs(options: RemoveJobsOptions): Promise<number>;
        enableJobs(options: RemoveJobsOptions): Promise<number>;
        getDistinctJobNames(): Promise<string[]>;
        getJobById(id: string): Promise<JobParameters<unknown> | null>;
        getJobsOverview(): Promise<JobsOverview[]>;
        getNextJobToRun(
            jobName: string,
            nextScanAt: Date,
            lockDeadline: Date,
            now: Date | undefined,
            options: JobRepositoryOptions | undefined,
        ): Promise<JobParameters<unknown> | undefined>;
        getQueueSize(): Promise<number>;
        lockJob(
            job: JobParameters,
            options: JobRepositoryOptions | undefined,
        ): Promise<JobParameters<unknown> | undefined>;
        queryJobs(options?: JobsQueryOptions): Promise<JobsResult<unknown>>;
        removeJobs(options: RemoveJobsOptions): Promise<number>;
        saveJob<DATA = unknown>(
            job: JobParameters<DATA>,
            options: JobRepositoryOptions | undefined,
        ): Promise<JobParameters<DATA>>;
        saveJobState(
            job: JobParameters,
            options: JobRepositoryOptions | undefined,
        ): Promise<void>;
        unlockJob(job: JobParameters): Promise<void>;
        unlockJobs(jobIds: (string | JobId)[]): Promise<void>;
    }
    Index

    Methods

    • Get all distinct job names

      Returns Promise<string[]>

    • Find and lock the next job to run for a given job type

      Parameters

      • jobName: string
      • nextScanAt: Date
      • lockDeadline: Date
      • now: Date | undefined
      • options: JobRepositoryOptions | undefined

      Returns Promise<JobParameters<unknown> | undefined>

    • Get count of jobs ready to run (nextRunAt < now)

      Returns Promise<number>