Agenda - v6.2.3
    Preparing search index...

    Interface AgendaOptions

    Agenda configuration options

    interface AgendaOptions {
        backend: AgendaBackend;
        defaultConcurrency?: number;
        defaultLockLifetime?: number;
        defaultLockLimit?: number;
        forkedWorker?: boolean;
        forkHelper?: { options?: ForkOptions; path: string };
        lockLimit?: number;
        logging?: boolean | JobLogger | { default?: boolean; logger?: JobLogger };
        maxConcurrency?: number;
        name?: string;
        notificationChannel?: NotificationChannel;
        processEvery?: string | number;
        removeOnComplete?: boolean;
    }
    Index

    Properties

    backend: AgendaBackend

    Unified backend for storage and optionally notifications

    defaultConcurrency?: number

    Default number of concurrent jobs per job type

    defaultLockLifetime?: number

    Default lock lifetime in milliseconds

    defaultLockLimit?: number

    Default max locked jobs per job type

    forkedWorker?: boolean

    Whether this is a forked worker instance

    forkHelper?: { options?: ForkOptions; path: string }

    Fork helper configuration for sandboxed workers

    lockLimit?: number

    Global max locked jobs

    logging?: boolean | JobLogger | { default?: boolean; logger?: JobLogger }

    Enable persistent job event logging (stored in the backend's database).

    Disabled by default. When enabled, all job lifecycle events (start, success, fail, complete, retry, etc.) are persisted and can be queried via agenda.getLogs() or viewed in agendash.

    Options:

    • true — use the backend's built-in logger, all jobs are logged
    • false / omitted — no logging (default)
    • JobLogger — use a custom logger instance, all jobs are logged
    • { logger?: JobLogger, default?: boolean } — fine-grained control:
      • logger: custom JobLogger (omit to use backend's built-in logger)
      • default: whether job definitions are logged by default (true = all logged, false = only jobs with logging: true in their definition are logged). Defaults to true.

    Per-job definitions can override the default via define('job', fn, { logging: false }).

    // Enable — log all jobs using backend's logger
    const agenda = new Agenda({ backend, logging: true });

    // Enable — opt-in per job (logger configured, but off by default)
    const agenda = new Agenda({ backend, logging: { default: false } });
    agenda.define('important', handler, { logging: true }); // logged
    agenda.define('noisy', handler); // NOT logged

    // Enable — custom logger (e.g., log to Postgres while using Mongo for storage)
    const agenda = new Agenda({ backend, logging: myPostgresJobLogger });

    // Enable — custom logger + opt-in per job
    const agenda = new Agenda({
    backend,
    logging: { logger: myPostgresJobLogger, default: false }
    });

    // Query logs
    const { entries } = await agenda.getLogs({ jobName: 'myJob', limit: 100 });
    maxConcurrency?: number

    Maximum number of concurrent jobs globally

    name?: string

    Name to identify this agenda instance

    notificationChannel?: NotificationChannel

    Override notification channel from backend. Use this to mix storage from one system with notifications from another. e.g., MongoDB storage + Redis notifications

    processEvery?: string | number

    How often to poll for new jobs (string like '5 seconds' or milliseconds)

    removeOnComplete?: boolean

    Automatically remove one-time jobs from database after successful completion