New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

work-queue

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

work-queue - npm Package Compare versions

Comparing version
0.0.2
to
0.0.3
+77
bin/queue-reader.coffee
#!/usr/bin/env coffee
Optimist = require('optimist')
$ = require 'bling'
opts = Optimist \
.options('c', { \
alias: 'collection',
default: 'workQueue',
describe: 'the collection to hold work orders in'
}) \
.options('i', { \
alias: 'interval',
default: 100
describe: 'when idle, how often to look for new work'
}) \
.options('r', { \
alias: 'require',
default: '',
describe: 'require this/these module(s), which should export type handlers'
}) \
.option('d', { \
alias: 'demo',
default: false
describe: 'DANGEROUS: load an example queue as a test, will flush all jobs in the specified collection'
}) \
.demand(1)
.check( (argv) ->
unless /^mongodb:/.test argv._
throw new Error("url must begin with mongodb://")
)
.usage("Usage: $0 [options...] mongodb://host:port/db_name")
.argv
url = opts._[0]
mins = 60*1000
$.log "Options:", opts
W = require "../index.coffee"
if $.is 'array', opts.require
for r in opts.require
$.log "Requiring '#{r}'..."
for type, handler of require(r)
$.assert ($.is 'string', type), "type must be string: #{type}"
$.assert ($.is 'function', handler), "handler must be function: #{handler}"
W.register type, handler
W.connect url, { collection: opts.collection }
worker = W.createWorker {
idle_delay: opts.interval
}
worker.resume()
if opts.demo
W.register 'echo', (item, done) ->
$.log "ECHO:", item.message
done()
W.clear().push(
type: "echo"
schedule: { every: .1*mins, maxFail: Infinity }
message: "Should recur every six seconds"
_id: "only_one"
).push(
type: "echo"
schedule: { after: .5*mins }
message: "Once after thirty seconds"
).push(
type: "echo"
schedule: { at: $.now + 3000 }
message: "Once after three seconds"
)
$.delay 32000, ->
$.log "Ending demo."
worker.pause()
+9
-14

@@ -33,6 +33,7 @@ #

ready.wait( (err, queue) -> queue.push item ); @
pop: (cb) -> ready.wait( (err, queue) -> queue.pop cb ); @
clear: -> ready.wait( (err, queue) -> queue.clear() ); @
close: -> ready.wait (err, queue) -> queue.close()
count: (cb) -> ready.wait( (err, queue) -> queue.count cb ); @
pop: (cb) -> ready.wait( (err, queue) -> queue.pop cb ); @
clear: -> ready.wait( (err, queue) -> queue.clear() ); @
remove: (query) -> ready.wait( (err, queue) -> queue.remove(query) ); @
close: -> ready.wait (err, queue) -> queue.close()
count: (cb) -> ready.wait( (err, queue) -> queue.count cb ); @
register: (type, handler) ->

@@ -46,6 +47,4 @@ ready.wait (err, queue) -> queue.register type, handler

return {
pause: ->
w.then (worker) -> worker.pause()
resume: ->
w.then (worker) -> worker.resume()
pause: -> w.then (worker) -> worker.pause()
resume: -> w.then (worker) -> worker.resume()
}

@@ -133,5 +132,3 @@

close: ->
$.log "closing"
db.close -> $.log "closed"
$.log "resetting", ready.promiseId
ready.reset()

@@ -142,6 +139,4 @@ ready.wait (err) ->

clear: ->
$.log "clearing"
q.remove {}, (err) -> $.log "clear result:", err
clear: -> q.remove {}, (err) ->
remove: (query) -> q.remove query, (err) ->
count: (cb) -> q.count { status: "new" }, cb

@@ -148,0 +143,0 @@ push: (item) ->

{
"name": "work-queue",
"version": "0.0.2",
"version": "0.0.3",
"description": "Process scheduled items from a queue held in MongoDB.",

@@ -9,2 +9,5 @@ "main": "index.coffee",

},
"bin": {
"queue-reader": "./bin/queue-reader.coffee"
},
"author": "Jesse Dailey <jesse.dailey@gmail.com>",

@@ -11,0 +14,0 @@ "license": "MIT",

Sorry, the diff of this file is not supported yet