8000 GitHub - titarenko/mqu: Job and event distribution built on top of RabbitMQ.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
/ mqu Public

Job and event distribution built on top of RabbitMQ.

Notifications You must be signed in to change notification settings

titarenko/mqu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mqu

npm i mqu

Example

const mqu = require('mqu')('amqp://guest:guest@localhost:5672')

mqu.on('error', error => {
  console.error('oh my, error!!', error)
  process.kill(process.pid)
})

mqu.on('connect',  () => {
  console.error('connect method succeeded')
})

mqu.consumeJob('j', data => console.log('worker 1', data))
mqu.consumeJob('j', data => console.log('worker 2', data))

mqu.consumeEvent('e', data => console.log('\thandler 1', data))
mqu.consumeEvent('e', data => console.log('\thandler 2', data))
mqu.consumeEvent('e', data => console.log('\thandler 3', data))

const jobInterval = setInterval(() => {
  const job = new Date().toISOString() + '-job'
  mqu.publishJob('j', job).then(() => console.log('published job', job))
}, 2000)

const eventInterval = setInterval(() => {
  const ev = new Date().toISOString() + '-event'
  mqu.publishEvent('e', ev).then(() => console.log('published event', ev))
}, 1500)

process.on('SIGINT', () => {
  clearInterval(jobInterval)
  clearInterval(eventInterval)
  mqu.close().then(() => console.log('closed!'))
})

Events

  • error - emitted when transport, protocol or consumer error is occurred
  • connect - emitted when a protocol level connection is ready

Why?

Because best RabbitMQ client for node.js bramqp is too verbose to be used directly for:

  • round robin distribution of jobs between workers
  • fanout distribution of events to listeners

License

MIT

About

Job and event distribution built on top of RabbitMQ.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  
0