1.0.0 • Published 7 years ago

feathers-bull v1.0.0

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

feathers-bull

Build Status Code Climate

A simple feathers plugin for Bull, automatically sets up a monitoring ui with toureiro at path /toureiro

Usage

const app = require('feathers')()
import QueueScheduler from 'feathers-bull';
const config={
  workers:{
    mail:{worker:function mailHanlder(job){
        return Promise((resolve,reject)=>{
          //do work and resolve
          resolve('mail sent')
          })
        }
      
    pdf:{worker: }
    }
   }
   redis: {port: 6379, host: '127.0.0.1'},//default
   toureiro:{db:1,path:'/toureiro'} //default
}

app.use('/bull',QueueScheduler(config))

Example

const feathers = require('feathers');
const rest = require('feathers-rest');
const socketio = require('feathers-socketio');
const bodyParser = require('body-parser');
const handler = require('feathers-errors/handler');
import QueueScheduler from 'feathers-bull';
const app =feathers()

const config = {
  workers: {
    myJob1: {
      queues: 'job-1-queue', worker: (job) => {
        return new Promise((resolve, reject) => {
          setTimeout(function myLongFunc() {
            resolve(job.data)
          },4000)
        }).then(res=>{
           /*send a message to job2 from 1*/
          app.service('bull').create({name:'myJob2',data:res});
          return res /*!important to always return*/
        })
      }
    },
    myJob2: {
      queues: ['job-2-queue-1','job-2-queue-2'], worker: (job) => {
        return new Promise((resolve, reject) => {
          setTimeout(function myLongFunc() {
            resolve(`Just recieved ${job.data} from myJob1`)
          },3000)
        })
      }
    }
  }
};



app.use(bodyParser.json())
  .use(bodyParser.urlencoded({extended: true}))
  .configure(rest())
  .configure(socketio())
  .use('/bull', QueueScheduler(config))
  .use('/', feathers.static(__dirname))
  .use(handler());

app.listen(3030,()=>{
  console.log('app is running at port 3030 with toureiro at /toureiro!')
});


setInterval(function () {
  app.service('/bull').create({name:'myJob1',data:'hello this is myJob1'});
}, 10000);

Changelog

  • Initial release

License

Copyright (c) 2017

Licensed under the MIT license.