Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Agenda

Hierarchy

  • EventEmitter
    • Agenda

Index

Constructors

constructor

  • new Agenda(config?: { defaultConcurrency?: undefined | number; defaultLockLifetime?: undefined | number; defaultLockLimit?: undefined | number; lockLimit?: undefined | number; maxConcurrency?: undefined | number; name?: undefined | string; processEvery?: string | number } & IDatabaseOptions | IMongoOptions | {} & IDbConfig, cb?: undefined | ((error?: Error) => void)): Agenda
  • Parameters

    • Default value config: { defaultConcurrency?: undefined | number; defaultLockLifetime?: undefined | number; defaultLockLimit?: undefined | number; lockLimit?: undefined | number; maxConcurrency?: undefined | number; name?: undefined | string; processEvery?: string | number } & IDatabaseOptions | IMongoOptions | {} & IDbConfig = {}

      Agenda Config

    • Optional cb: undefined | ((error?: Error) => void)

      Callback after Agenda has started and connected to mongo

    Returns Agenda

Properties

Readonly attrs

db

Readonly definitions

definitions: {}

Type declaration

Private Optional jobProcessor

jobProcessor: JobProcessor

Readonly ready

ready: Promise<void>

Static defaultMaxListeners

defaultMaxListeners: number

Static Readonly errorMonitor

errorMonitor: unique symbol

This symbol shall be used to install a listener for only monitoring 'error' events. Listeners installed using this symbol are called before the regular 'error' listeners are called.

Installing a listener using this symbol does not change the behavior once an 'error' event is emitted, therefore the process will still crash if no regular 'error' listener is installed.

Methods

addListener

  • addListener(event: string | symbol, listener: (...args: any[]) => void): this
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

cancel

  • Cancels any jobs matching the passed MongoDB query, and removes them from the database.

    Parameters

    Returns Promise<number>

create

  • create(name: string): Job<void>
  • create<DATA>(name: string, data: DATA): Job<DATA>
  • Given a name and some data, create a new job

    Parameters

    • name: string

    Returns Job<void>

  • Type parameters

    • DATA = unknown

    Parameters

    • name: string
    • data: DATA

    Returns Job<DATA>

Private createJobs

  • createJobs<DATA>(names: string[], createJob: (name: string) => Promise<Job<DATA>>): Promise<Job<DATA>[]>
  • Internal helper method that uses createJob to create jobs for an array of names

    Type parameters

    • DATA = unknown

    Parameters

    • names: string[]

      Strings of jobs to schedule

    • createJob: (name: string) => Promise<Job<DATA>>
        • (name: string): Promise<Job<DATA>>
        • Parameters

          • name: string

          Returns Promise<Job<DATA>>

    Returns Promise<Job<DATA>[]>

    array of jobs created

database

  • database(address: string, collection?: undefined | string, options?: MongoClientOptions): Promise<Agenda>
  • Connect to the spec'd MongoDB server and database.

    Parameters

    • address: string
    • Optional collection: undefined | string
    • Optional options: MongoClientOptions

    Returns Promise<Agenda>

defaultConcurrency

  • defaultConcurrency(num: number): Agenda
  • Set the default concurrency for each job

    Parameters

    • num: number

      number of max concurrency

    Returns Agenda

defaultLockLifetime

  • defaultLockLifetime(ms: number): Agenda
  • Set the default lock time (in ms) Default is 10 * 60 * 1000 ms (10 minutes)

    Parameters

    • ms: number

    Returns Agenda

defaultLockLimit

  • defaultLockLimit(num: number): Agenda

define

  • define<DATA>(name: string, processor: (agendaJob: Job<DATA>, done: (error?: Error) => void) => void, options?: Partial<Pick<IJobDefinition, "lockLimit" | "lockLifetime" | "concurrency">> & { priority?: JobPriority }): void
  • define<DATA>(name: string, processor: (agendaJob: Job<DATA>) => Promise<void>, options?: Partial<Pick<IJobDefinition, "lockLimit" | "lockLifetime" | "concurrency">> & { priority?: JobPriority }): void
  • Setup definition for job Method is used by consumers of lib to setup their functions BREAKING CHANGE in v4: options moved from 2nd to 3rd parameter!

    Type parameters

    • DATA = any

    Parameters

    • name: string
    • processor: (agendaJob: Job<DATA>, done: (error?: Error) => void) => void
        • (agendaJob: Job<DATA>, done: (error?: Error) => void): void
        • Parameters

          • agendaJob: Job<DATA>
          • done: (error?: Error) => void
              • (error?: Error): void
              • Parameters

                • Optional error: Error

                Returns void

          Returns void

    • Optional options: Partial<Pick<IJobDefinition, "lockLimit" | "lockLifetime" | "concurrency">> & { priority?: JobPriority }

    Returns void

  • Type parameters

    • DATA = any

    Parameters

    • name: string
    • processor: (agendaJob: Job<DATA>) => Promise<void>
        • (agendaJob: Job<DATA>): Promise<void>
        • Parameters

          • agendaJob: Job<DATA>

          Returns Promise<void>

    • Optional options: Partial<Pick<IJobDefinition, "lockLimit" | "lockLifetime" | "concurrency">> & { priority?: JobPriority }

    Returns void

emit

  • emit(event: string | symbol, ...args: any[]): boolean
  • Parameters

    • event: string | symbol
    • Rest ...args: any[]

    Returns boolean

eventNames

  • eventNames(): Array<string | symbol>
  • Returns Array<string | symbol>

every

  • every(interval: string | number, names: string[], data?: undefined, options?: undefined | { skipImmediate?: undefined | false | true; timezone?: undefined | string }): Promise<Job<void>[]>
  • every(interval: string | number, name: string, data?: undefined, options?: undefined | { skipImmediate?: undefined | false | true; timezone?: undefined | string }): Promise<Job<void>>
  • every<DATA>(interval: string | number, names: string[], data: DATA, options?: undefined | { skipImmediate?: undefined | false | true; timezone?: undefined | string }): Promise<Job<DATA>[]>
  • every<DATA>(interval: string | number, name: string, data: DATA, options?: undefined | { skipImmediate?: undefined | false | true; timezone?: undefined | string }): Promise<Job<DATA>>
  • Creates a scheduled job with given interval and name/names of the job to run

    Parameters

    • interval: string | number
    • names: string[]
    • Optional data: undefined
    • Optional options: undefined | { skipImmediate?: undefined | false | true; timezone?: undefined | string }

    Returns Promise<Job<void>[]>

  • Parameters

    • interval: string | number
    • name: string
    • Optional data: undefined
    • Optional options: undefined | { skipImmediate?: undefined | false | true; timezone?: undefined | string }

    Returns Promise<Job<void>>

  • Type parameters

    • DATA = unknown

    Parameters

    • interval: string | number
    • names: string[]
    • data: DATA
    • Optional options: undefined | { skipImmediate?: undefined | false | true; timezone?: undefined | string }

    Returns Promise<Job<DATA>[]>

  • Type parameters

    • DATA = unknown

    Parameters

    • interval: string | number
    • name: string
    • data: DATA
    • Optional options: undefined | { skipImmediate?: undefined | false | true; timezone?: undefined | string }

    Returns Promise<Job<DATA>>

getMaxListeners

  • getMaxListeners(): number
  • Returns number

getRunningStats

Private hasDatabaseConfig

  • hasDatabaseConfig(config: unknown): config is IDatabaseOptions | IMongoOptions & IDbConfig
  • Parameters

    • config: unknown

    Returns config is IDatabaseOptions | IMongoOptions & IDbConfig

isActiveJobProcessor

  • isActiveJobProcessor(): boolean

jobs

  • Finds all jobs matching 'query'

    Parameters

    • Default value query: FilterQuery<IJobParameters> = {}
    • Default value sort: FilterQuery<IJobParameters> = {}
    • Default value limit: number = 0
    • Default value skip: number = 0

    Returns Promise<Job[]>

listenerCount

  • listenerCount(event: string | symbol): number
  • Parameters

    • event: string | symbol

    Returns number

listeners

  • listeners(event: string | symbol): Function[]
  • Parameters

    • event: string | symbol

    Returns Function[]

lockLimit

  • lockLimit(num: number): Agenda
  • Set the default amount jobs that are allowed to be locked at one time (GLOBAL)

    Parameters

    • num: number

    Returns Agenda

maxConcurrency

  • maxConcurrency(num: number): Agenda
  • Set the concurrency for jobs (globally), type does not matter

    Parameters

    • num: number

    Returns Agenda

mongo

  • mongo(mongo: Db, collection?: undefined | string): Promise<Agenda>
  • Use existing mongo connectino to pass into agenda

    Parameters

    • mongo: Db
    • Optional collection: undefined | string

    Returns Promise<Agenda>

name

now

  • now<DATA>(name: string): Promise<Job<DATA>>
  • now<DATA>(name: string, data: DATA): Promise<Job<DATA>>
  • Create a job for this exact moment

    Type parameters

    • DATA = void

    Parameters

    • name: string

    Returns Promise<Job<DATA>>

  • Type parameters

    • DATA = unknown

    Parameters

    • name: string
    • data: DATA

    Returns Promise<Job<DATA>>

off

  • off(event: string | symbol, listener: (...args: any[]) => void): this
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

on

  • on(event: "processJob", listener: (job: JobWithId) => void): this
  • on(event: "fail", listener: (error: Error, job: JobWithId) => void): this
  • on(event: "success", listener: (job: JobWithId) => void): this
  • on(event: "start", listener: (job: JobWithId) => void): this
  • on(event: "complete", listener: (job: JobWithId) => void): this
  • on(event: string, listener: (job: JobWithId) => void): this
  • on(event: string, listener: (error: Error, job: JobWithId) => void): this
  • on(event: "ready", listener: () => void): this
  • on(event: "error", listener: (error: Error) => void): this
  • Parameters

    Returns this

  • Parameters

    • event: "fail"
    • listener: (error: Error, job: JobWithId) => void
        • Parameters

          Returns void

    Returns this

  • Parameters

    Returns this

  • Parameters

    Returns this

  • Parameters

    Returns this

  • Parameters

    Returns this

  • Parameters

    • event: string
    • listener: (error: Error, job: JobWithId) => void
        • Parameters

          Returns void

    Returns this

  • Parameters

    • event: "ready"
    • listener: () => void
        • (): void
        • Returns void

    Returns this

  • Parameters

    • event: "error"
    • listener: (error: Error) => void
        • (error: Error): void
        • Parameters

          • error: Error

          Returns void

    Returns this

once

  • once(event: string | symbol, listener: (...args: any[]) => void): this
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

prependListener

  • prependListener(event: string | symbol, listener: (...args: any[]) => void): this
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

prependOnceListener

  • prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

processEvery

  • processEvery(time: string | number): Agenda
  • Set the time how often the job processor checks for new jobs to process

    Parameters

    • time: string | number

    Returns Agenda

purge

  • purge(): Promise<number>
  • Removes all jobs from queue

    note:

    Only use after defining your jobs

    Returns Promise<number>

rawListeners

  • rawListeners(event: string | symbol): Function[]
  • Parameters

    • event: string | symbol

    Returns Function[]

removeAllListeners

  • removeAllListeners(event?: string | symbol): this
  • Parameters

    • Optional event: string | symbol

    Returns this

removeListener

  • removeListener(event: string | symbol, listener: (...args: any[]) => void): this
  • Parameters

    • event: string | symbol
    • listener: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    Returns this

schedule

  • schedule<DATA>(when: string | Date, names: string[]): Promise<Job<DATA>[]>
  • schedule<DATA>(when: string | Date, names: string): Promise<Job<DATA>>
  • schedule<DATA>(when: string | Date, names: string[], data: DATA): Promise<Job<DATA>[]>
  • schedule<DATA>(when: string | Date, name: string, data: DATA): Promise<Job<DATA>>
  • Schedule a job or jobs at a specific time

    Type parameters

    • DATA = void

    Parameters

    • when: string | Date
    • names: string[]

    Returns Promise<Job<DATA>[]>

  • Type parameters

    • DATA = void

    Parameters

    • when: string | Date
    • names: string

    Returns Promise<Job<DATA>>

  • Type parameters

    • DATA = unknown

    Parameters

    • when: string | Date
    • names: string[]
    • data: DATA

    Returns Promise<Job<DATA>[]>

  • Type parameters

    • DATA = unknown

    Parameters

    • when: string | Date
    • name: string
    • data: DATA

    Returns Promise<Job<DATA>>

setMaxListeners

  • setMaxListeners(n: number): this
  • Parameters

    • n: number

    Returns this

sort

start

  • start(): Promise<void>
  • Starts processing jobs using processJobs() methods, storing an interval ID This method will only resolve if a db has been set up beforehand.

    Returns Promise<void>

stop

  • stop(): Promise<void>
  • Clear the interval that processes the jobs

    Returns Promise<void>

Static listenerCount

  • listenerCount(emitter: EventEmitter, event: string | symbol): number
  • deprecated

    since v4.0.0

    Parameters

    • emitter: EventEmitter
    • event: string | symbol

    Returns number

Generated using TypeDoc