Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kirill-dev-pro/beanstalk-promises

Promise wraper for fivebeans client so you can use promises instead of callbacks and await them
https://github.com/kirill-dev-pro/beanstalk-promises

beanstalk beanstalkd javascript-library nodejs npm npm-module

Last synced: 2 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# beanstalk-promises
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)
[![Test Coverage](https://codeclimate.com/github/Zmeu213/beanstalk-promises/badges/coverage.svg)](https://codeclimate.com/github/Zmeu213/beanstalk-promises/coverage)
[![Issue Count](https://codeclimate.com/github/Zmeu213/beanstalk-promises/badges/issue_count.svg)](https://codeclimate.com/github/Zmeu213/beanstalk-promises)

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

### Quick start
```javascript
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
```javascript
{
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*