npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

bull-manager

v1.1.4

Published

Easily manage your bull queues

Downloads

11

Readme

bull-manager CircleCI

Easily manage your bull queues

npm version dependencies Status XO code style

Getting started

$ yarn add bull-manager

Usage

On the worker side:

const {configureQueues, createJobQueue} = require('bull-manager')

configureQueues({
  isSubscriber: true,
  prefix: 'my-prefix',
  createRedis: type => {
    /* … */
  },
  onError: (job, error) => {
    console.error('An unexpected error happened')
  }
})

await createJobQueue('my-cool-job', job => {/* handler */}, {
  concurrency: 10,
  onError: (job, error) => {
    console.log('my cool job failed')
  }
}, {
  /* job options */
})

On the client side:

const {configureQueues, joinJobQueue, enqueue} = require('bull-manager')

configureQueues({
  prefix: 'my-prefix',
  createRedis: type => {
    /* … */
  },
  onError: (job, error) => {
    console.error('An unexpected error happened')
  }
})

await joinJobQueue('my-cool-job', {
  /* job options */
})

await enqueue('my-cool-job', 'job-name', {
  something: 'important'
}, {
  /* job options */
})

API

configureQueues(options)

Configure bull-manager by specifying the following options:

  • isManager: set to true for workers. Defaults to false.
  • createRedis: function that creates redis connections if you need custom options. Passing a function will enable connections reuse for subscriber and client connections. Defaults to undefined.
  • onError: error handler that will be called for failed jobs when the corresponding queue doesn’t specify a custom error handler. Defaults to undefined.

createJobQueue(name, handler, options, jobOptions)

Create a job queue and add the corresponding handler.

It takes the following options:

  • onError: specific error handler that will be called when a job fails. Throwing withing the onError handler will invoke the global error handler (when defined) with the thrown error. Defaults to undefined.
  • concurrency: amount of concurrent jobs per process. Defaults to 1.

For jobOptions, refer to the bull documentation.

There is one additional job option:

  • jobIdKey: enqueue will set the jobId to _.get(data, jobIdKey)

The default values are the same as in Queue#add except for removeOnComplete that will be true.

joinJobQueue(name, jobOptions)

Join a job queue. Behaves like createJobQueue except that it does not register a handler.

enqueue(name, jobTitle, data, jobOptions)

Add a job to the name jobQueue.

jobTitle is just a simple name to identify a job, it is not required. It will set name property to data if not set.

disconnectQueues()

Run Queue#disconnect on all queues.

Cool features

jobIdKey

Pass jobIdKey to job options so that enqueue will set the jobId to _.get(data, jobIdKey). Only works for createJobQueue and joinJobQueue job options, as it doesn’t make sense for enqueue. You always have the possibility to use jobId in enqueue, it will override anything else.

Fallthrough error handlers

Throwing in a job specific error handler will call the global error handler with that error.

Random things

  • You don’t need to pass job options to createJobQueue if you are never going to use enqueue in your workers.
  • removeOnComplete is set to true by default.

License

MIT

Miscellaneous

    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝