beanstalk-promises

Promise wraper for fivebeans client so you can use promises instead of callbacks and await them

Usage no npm install needed!

<script type="module">
  import beanstalkPromises from 'https://cdn.skypack.dev/beanstalk-promises';
</script>

README

beanstalk-promises

JavaScript Style Guide Test Coverage Issue Count

Promise wraper for fivebeans client so you can use promises instead of callbacks and await them

Quick start

const Beanstalk = require('beanstalk-promises')

async function main () {
    let client = new Beanstalk()
    await client.connect('127.0.0.1', 11300, 1000)
    await client.watchTube('test')
    let job = await client.getJob()
    await client.quit()
}

main()

Functions

  • constructor(debug, default_ttl) Create new instance of beanstalk-promises client.

    • If debug is true (or if it just exist) it will print debug messages.
    • default_ttl is a parameter that sets how long job could be reserved.
  • .connect(host, port, reconnect)

    • reconnect is a number in miliseconds, client will reconnect to beanstalk after it if something happens. Set 0 to disable.
  • .quit() Disconnects the client, no reconnect.

  • .watchTube(tube) return number of watched tubes

    • tube name of tube to watch
  • .useTube(tube) return name of tube used by client

    • tube name of tube to use
  • .getJob() return a job. Get available for reserve job from tubes watched by client.

  • job is object

{
  id: jobid,    // Job id 
  data: payload // Job data
}
  • .buryJob(job) takes whole job object (or just something that have .id property) and bury it

  • .releaseJob(job) releases a job

  • .checkJob() return true if there is avalable for release job in tube used by client. Return false if not. Dont reserve jobs, just check.

  • .putJob(data, priority, delay) put job to a tube used by a client

    • data payload for future job.
    • priority smaller integer means higher priority. Default is 0.
    • delay delay in seconds. Default is 0.
  • deleteJob(job) delete job

    • job job object
  • .stats() Return stats of the server

  • .statsTube(name) Return stats of tube

    • name name of tube
  • .listTubes() List tubes. Yes.

License

MIT