3.2.0 • Published 12 months ago

adonis5-bullmq v3.2.0

Weekly downloads
63
License
MIT
Repository
github
Last release
12 months ago

Table of contents

adonis5-bullmq

Tagline

npm-image license-image typescript-image

BullMQ provider for Adonis5

Installation

npm i adonis5-bullmq
node ace invoke adonis5-bullmq

Usage

Create your props interface and enums

// file: Contracts/QueueInterfaces.ts
export interface TestProps {
  name: string
}
export enum QueueNamesEnum {
  'TestJob' = 'TestJob'
}

Create queue listener

// file commands/QueueListener.ts
import BullMQ from '@ioc:Adonis/Addons/BullMQ'
import {TestProps, QueueNamesEnum} from 'Contracts/QueueInterfaces'

export default class QueueListener extends BaseCommand {
  /**
   * Command Name is used to run the command
   */
  public static commandName = 'queue:listener'

  public static settings = {
    loadApp: true,
  }

  run(){
    BullMQ.worker<TestProps, TestProps>(QueueNamesEnum.TestJob, async (job) => {
      console.log(job.data)
      // handle your job
      return job
  })
  }
}

Emit job

// anyAppFile.ts
import BullMQ from '@ioc:Adonis/Addons/BullMQ'
import {TestProps, QueueNamesEnum} from 'Contracts/QueueInterfaces'

const queue = BullMQ.queue<TestProps, TestProps>(QueueNamesEnum.TestJob)
export default class IndexController {
  async send(){
    await queue.add('mytestJob', { name: 'anyName' })
  }
}
3.2.0

12 months ago

2.2.0

2 years ago

2.1.0

2 years ago

2.0.0

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago