@lilei/koa
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published

@bull-monitor/koa

Koa adapter for bull-monitor

Usage

@bull-monitor/koa has a peer dependency of koa-router

npm i @bull-monitor/koa koa-router
import { BullMonitorKoa } from '@bull-monitor/koa';
import Koa from 'koa';
import { BullAdapter } from '@bull-monitor/root/dist/bull-adapter';
// for BullMQ users
// import { BullMQAdapter } from "@bull-monitor/root/dist/bullmq-adapter";
import Queue from 'bull';

(async () => {
  const app = new Koa();
  const monitor = new BullMonitorKoa({
    queues: [
      new BullAdapter(new Queue('1', 'REDIS_URI')),
      // readonly queue
      new BullAdapter(new Queue('2', 'REDIS_URI'), { readonly: true }),
    ],
    baseUrl: '/my/url',
    // enables graphql introspection query. false by default if NODE_ENV == production, true otherwise
    gqlIntrospection: true,
    // enable metrics collector. false by default
    // metrics are persisted into redis as a list
    // with keys in format "bull_monitor::metrics::{{queue}}"
    metrics: {
      // collect metrics every X
      // where X is any value supported by https://github.com/kibertoad/toad-scheduler
      collectInterval: { hours: 1 },
      maxMetrics: 100,
      // disable metrics for specific queues
      blacklist: ['1'],
    },
  });
  await monitor.init({
    // optional middleware that will run before the bull-monitor router
    middleware: async (_ctx, next) => {
      console.log('do something');
      await next();
    },
  });
  app.use(monitor.router.routes());
  app.listen(3000);

  // replace queues
  monitor.setQueues([new BullAdapter(new Queue('3', 'REDIS_URI'))]);
})();

Readme

Keywords

Package Sidebar

Install

npm i @lilei/koa

Weekly Downloads

1

Version

1.0.3

License

MIT

Unpacked Size

19.2 kB

Total Files

8

Last publish

Collaborators

  • lilei