New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

rethinkdb-job-queue

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rethinkdb-job-queue - npm Package Compare versions

Comparing version 0.5.1 to 1.0.0

5

CHANGELOG.md
# `rethinkdb-job-queue` Change log
## v1.0.0 / 2016-10-12
* `Job.update` now adds log entry automatically.
* Bump to v1.0.0 to support SemVer.
## v0.5.1 / 2016-10-11

@@ -4,0 +9,0 @@

2

dist/enums.js

@@ -94,3 +94,3 @@ 'use strict';

seeLogData: 'See the data attached to this log entry',
jobUpdated: 'Job updated',
jobUpdated: 'Job updated. Old values in log data',
jobNotAdded: 'Job not added to the queue',

@@ -97,0 +97,0 @@ jobAlreadyAdded: 'Job is already in the queue',

@@ -6,18 +6,19 @@ 'use strict';

var enums = require('./enums');
var queueGetJob = require('./queue-get-job');
var jobAddLog = require('./job-add-log');
module.exports = function jobUpdate(job) {
var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : enums.message.jobUpdated;
var type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : enums.log.information;
var status = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : job.status;
logger('jobUpdate: [' + job.id + ']');
var log = jobAddLog.createLogObject(job, data, message, type, status);
job.log.push(log);
var jobCopy = job.getCleanCopy();
var log = jobAddLog.createLogObject(job, null, enums.message.jobUpdated, enums.log.information);
return Promise.resolve().then(function () {
return job.q.r.db(job.q.db).table(job.q.name).get(job.id).update(jobCopy, { returnChanges: false }).run();
return queueGetJob(job.q, job.id);
}).then(function (oldJobs) {
log.data = oldJobs[0].getCleanCopy();
delete log.data.log;
job.log.push(log);
return job.getCleanCopy();
}).then(function (cleanJob) {
return job.q.r.db(job.q.db).table(job.q.name).get(job.id).update(cleanJob, { returnChanges: false }).run();
}).then(function (updateResult) {

@@ -24,0 +25,0 @@ logger('updateResult', updateResult);

@@ -122,13 +122,7 @@ 'use strict';

value: function update() {
var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var message = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : enums.message.seeLogData;
var _this2 = this;
var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : enums.log.information;
var status = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : this.status;
logger('update [' + message + ']');
logger('update');
return this.q.ready().then(function () {
return jobUpdate(_this2, data, message, type, status);
return jobUpdate(_this2);
}).catch(function (err) {

@@ -135,0 +129,0 @@ logger('update Error:', err);

{
"name": "rethinkdb-job-queue",
"version": "0.5.1",
"version": "1.0.0",
"description": "A persistent job or task queue backed by RethinkDB.",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -18,17 +18,2 @@ # Introduction

## Warning - API Change in v0.5.0
Verion 1.0.0 will be soon, however there are breaking changes in v0.5.0:
* `Job.createLog` method has been removed from Job objects.
* `Job.addLog` signature change.
* `Job.update` signature change.
Non-breaking changes:
* New dependency on [serialize-error](https://www.npmjs.com/package/serialize-error)
* `next(error)` now stringifies the error to `Job.log[].data`. Still adds error message and stack to `Job.log[].errorMessage` and `Job.log[].errorStack`.
See the [documentation][rjq-wiki-url] for more detail.
## Features

@@ -57,4 +42,2 @@

[queue-connection-url]: https://github.com/grantcarthew/node-rethinkdb-job-queue/wiki/Queue-Connection

@@ -85,6 +68,4 @@ [queue-events-url]: https://github.com/grantcarthew/node-rethinkdb-job-queue/wiki/Queue-Events

* There are over 1300 integration tests.
* In a few months I will bump the version up to 1.0.0 to support [SemVer](http://semver.org/).
* Please provide feedback or raise issues prior to the version bump.
* Updated to v1.0.0 to support [SemVer](http://semver.org/).
## Quick Start

@@ -91,0 +72,0 @@

@@ -19,4 +19,2 @@ const test = require('tape')

job.detail = tData
let testLog
let extra = 'extra data'
let logObject = { foo: 'bar' }

@@ -23,0 +21,0 @@

@@ -14,3 +14,3 @@ const test = require('tape')

test('job-update', (t) => {
t.plan(19)
t.plan(31)

@@ -55,3 +55,3 @@ const q = new Queue(tOpts.cxn(), tOpts.default())

job.dateEnable = tDate
return jobUpdate(job, tData)
return jobUpdate(job)
}).then((updateResult) => {

@@ -70,2 +70,14 @@ t.ok(updateResult, 'Job updated successfully')

t.equal(updatedJob[0].log[1].message, enums.message.jobUpdated, 'Updated log message is present')
t.equal(updatedJob[0].log[1].data.data, tData, 'Updated log data.data is present')
t.ok(is.date(updatedJob[0].log[1].data.dateCreated), 'Updated log data.dateCreated is a date')
t.ok(is.date(updatedJob[0].log[1].data.dateEnable), 'Updated log data.dateEnable is a date')
t.ok(is.uuid(updatedJob[0].log[1].data.id), 'Updated log data.id is a uuid')
t.ok(is.number(updatedJob[0].log[1].data.priority), 'Updated log data.priority is a number')
t.ok(is.number(updatedJob[0].log[1].data.progress), 'Updated log data.progress is a number')
t.ok(is.string(updatedJob[0].log[1].data.queueId), 'Updated log data.queueId is a string')
t.ok(is.number(updatedJob[0].log[1].data.retryCount), 'Updated log data.retryCount is a number')
t.ok(is.number(updatedJob[0].log[1].data.retryDelay), 'Updated log data.retryDelay is a number')
t.ok(is.number(updatedJob[0].log[1].data.retryMax), 'Updated log data.retryMax is a number')
t.ok(is.string(updatedJob[0].log[1].data.status), 'Updated log data.status is a string')
t.ok(is.number(updatedJob[0].log[1].data.timeout), 'Updated log data.timeout is a number')
t.equal(updatedJob[0].newData, tData, 'New job data is valid')

@@ -72,0 +84,0 @@ t.equal(updatedJob[0].dateEnable.toString(), tDate.toString(), 'New job dateEnable is valid')

@@ -6,6 +6,4 @@ const test = require('tape')

const enums = require('../src/enums')
const jobAddLog = require('../src/job-add-log')
const Job = require('../src/job')
const tData = require('./test-options').tData
const lData = require('./test-options').lData
const Queue = require('../src/queue')

@@ -17,3 +15,3 @@ const tOpts = require('./test-options')

test('job', (t) => {
t.plan(93)
t.plan(81)

@@ -25,3 +23,2 @@ const q = new Queue(tOpts.cxn(), tOpts.default())

let savedJob
let newTimeout = 1234

@@ -197,31 +194,2 @@ // ---------- Event Handler Setup ----------

// ---------- Update Job ----------
t.comment('job: Update Job with string message')
savedJob.newData = tData
savedJob.timeout = newTimeout
return savedJob.update(tData)
}).then((updateResult) => {
t.ok(updateResult, 'Job update returned true')
return q.getJob(savedJob.id)
}).then((jobsFromDb) => {
t.equal(jobsFromDb[0].id, savedJob.id, 'Job retrieved successfully')
t.equal(jobsFromDb[0].newData, tData, 'Job new data valid')
t.equal(jobsFromDb[0].timeout, newTimeout, 'Job new timeout valid')
// ---------- Update Job Passing `data` object ----------
t.comment('job: Update Job with Object message')
savedJob.newData = tData
savedJob.timeout = newTimeout
return savedJob.update(lData)
}).then((updateResult) => {
t.ok(updateResult, 'Job update returned true')
return q.getJob(savedJob.id)
}).then((jobsFromDb) => {
const lastLogData = jobsFromDb[0].log[jobsFromDb[0].log.length - 1]
t.equal(jobsFromDb[0].id, savedJob.id, 'Job retrieved successfully')
t.equal(jobsFromDb[0].timeout, newTimeout, 'Job new timeout valid')
t.equal(lastLogData.message, enums.message.seeLogData, 'Job log message property valid')
t.equal(lastLogData.data.one_key, lData.one_key, 'Job log message property valid')
t.equal(lastLogData.data.some_other_key, lData.some_other_key, 'Job log data property valid')
removeEventHandlers()

@@ -228,0 +196,0 @@ return q.reset()

# WORKLOG
Queue option parsing.
## Update events in tests to support x of y
* queue-process.spec Done!
## Notes for documentation
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc