Skip to content

Releases: nemoengineering/adonis-jobs

Release 1.0.0

30 Jun 09:54

Choose a tag to compare

Check out the dedicated documentation website : https://adonis-jobs.nemo.engineering/

Also check out previous release for breaking changes

Release 1.0.0-beta.4

23 Jun 14:57
58eb009

Choose a tag to compare

Release 1.0.0-beta.4 Pre-release
Pre-release

1.0.0-beta.4 (2025-06-23)

Release 1.0.0-beta.3

23 Jun 09:40
d0a461c

Choose a tag to compare

Release 1.0.0-beta.3 Pre-release
Pre-release

1.0.0-beta.3 (2025-06-23)

Bug Fixes

Features

  • add handlers for uncaught exceptions and errors on workers / queues (7d9c822)
  • improve docs landing page (e84f3b4)

Release 1.0.0-beta.2

13 Jun 19:38

Choose a tag to compare

Release 1.0.0-beta.2 Pre-release
Pre-release

1.0.0-beta.2 (2025-06-13)

Bug Fixes

  • ignore jobs that are not living inside ${app.root}/app directory (6d1190c)

Features

Full Changelog: v1.0.0-beta.1...v1.0.0-beta.2

Release 1.0.0-beta.1

13 Jun 10:51

Choose a tag to compare

Release 1.0.0-beta.1 Pre-release
Pre-release

1.0.0-beta.1 (2025-06-13)

Features

  • add job multi-logger (#59) (865af6c)
  • add quick log when exiting the worker (beb691d)
  • added a forceExit option on queue:work command (8e6b062)
  • better healthcheck (#61) (9bb745c)
  • new docs (#62) (f7ed928)
  • shared connection + use @adonisjs/redis connections (#60) (cf62266)

1.0.0-beta.0

10 Jun 19:38

Choose a tag to compare

1.0.0-beta.0 Pre-release
Pre-release

Release Notes v1.0.0-beta.0

Lot of changes in this version, and some minor breaking changes. Documentation is not updated yet

New Features

Job Scheduler System

Built-in job scheduling with cron-like syntax:

await JobScheduler.schedule({
  key: 'file-writer-scheduler',
  job: WriteFileJob,
  data: { data: 'Scheduled via JobScheduler!' },
  repeat: { pattern: '*/15 * * * * *' },
  queue: 'queue-name',
})

We are using Bull MQ Job Scheduler under the hood.

New Commands:

  • node ace queue:scheduler:clear --queue default
  • node ace queue:scheduler:list --queue default
  • node ace queue:scheduler:remove --key "scheduler-key"

Management Commands

Three new queue management commands:

  • node ace queue:clean --type completed --grace 200 --limit 500
  • node ace queue:clear --queue notifications
  • node ace queue:drain --queue background-tasks

Prometheus Metrics Integration

Added collector for @julr/adonisjs-prometheus:

  • Job count metrics: bullmq_job_count{queue="default",state="active"}
  • Processing time histograms: bullmq_job_processing_time
  • Completion time histograms: bullmq_job_completion_time

We are maybe planning to add a cool basic Grafana dashboard for BullMQ metrics in the future.

BullMQ Pro Support

Basic support for BullMQ Pro. To enable it, make sure to install @taskforce/bullmq-pro and enable it in your config/queue.ts:

// ....

declare module '@nemoventures/adonis-jobs/types' {
  interface Queues extends InferQueues<typeof queueConfig> {}
  interface BullVersion {
    version: 'pro' // Enable BullMQ Pro
  }
}

Job Discovery

  • Job classes now use _job.ts suffix and can be placed anywhere in your codebase
  • Protection against duplicate job names with clear error messages
  • Automatic job class loading via new JobDiscoverer system

Improved Job Dispatch

Can now call Job.dispatch() without arguments when no data is required (previously needed Job.dispatch(undefined))

Breaking Changes

API Changes

  • Queue Dashboard: Moved from root export to ./ui/queuedash

    // Before
    import { queueDashRoutes } from '@nemoventures/adonis-jobs'
    
    // After
    import { queueDashUiRoutes } from '@nemoventures/adonis-jobs/ui/queuedash'
  • Container Binding: Renamed from job.queueManager to queue.manager

    // Before
    const manager = await app.container.make('job.queueManager')
    
    // After
    const manager = await app.container.make('queue.manager')

Closure Jobs

Closure jobs have been removed since they were experimental and quite hackish. Use standard job classes instead.

Job file naming convention

Job classes must now end with the _job.ts suffix to ensure proper discovery.

BullMQ as Peer Dependency

BullMQ is now a peer dependency instead of a direct dependency now, since we are supporting BullMQ Pro. This means you need to install it manually in your project.

npm install bullmq

Full Changelog: View on GitHub

⚠️ Beta Release: This is a beta release. Please test thoroughly in development environments before production use.

v0.8.0

27 May 11:41
443cab8

Choose a tag to compare


v0.7.0...v0.8.0

v0.6.2

07 Jan 16:06
542f07b

Choose a tag to compare

chore(release): 0.6.2

v0.6.1

07 Jan 16:03
66342bf

Choose a tag to compare

v0.6.0...v0.6.1

v0.6.0

03 Dec 13:32
bdc4797

Choose a tag to compare

  • Merge pull request #38 from nemoengineering/feature/otel 3cfeed0
  • update bullmq and add otel 2229245
  • chore(release): 0.5.1 5e4a10c
  • Merge pull request #36 from nemoengineering/chore/cleanup-folder cd62aa3
  • chore: remove unused files af19b30

v0.5.0...v0.6.0