Socket
Book a DemoInstallSign in
Socket

concurrent-seq-file

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

concurrent-seq-file

makes it safe to work on multiple jobs identified by a sequence at the same time.

latest
Source
npmnpm
Version
1.2.1
Version published
Weekly downloads
48
84.62%
Maintainers
1
Weekly downloads
 
Created
Source

concurrent-seq-file

makes it safe to work on multiple jobs identified by a sequence at the same time.

or more technically..

extends seq-file to save the lowest completed sequence number from active async processes.

var seq = require('concurrent-seq-file')('./test.seq')
var importantJob = require('some imaginary important job')

// stream that emits {seq:numeric id,doc:{}}
var follower = ... 

follower.on('data',function(obj){
  var done = seq(obj.seq)
  importantJob(function(){
    done()
  })
})

or without seq-file. if you need to save in a database etc.


loadFromDb(function(err,savedValue){

  var seq = require('concurrent-seq-file').starter(function(seq,cb){
    yourCustomSaveInDB(seq,function(err){
      cb(err)
    })
  },{savedValue:savedValue})

  var importantJob = require('some imaginary important job')

  // stream that emits {seq:numeric id,doc:{}}
  var follower = ... 

  follower.on('data',function(obj){
    var done = seq(obj.seq)
    importantJob(function(){
      done()
    })
  })

})

api

  • seq = exports(file[,options])

    • file - the file name to read the sequence from
    • options, optional
    • returns the seq function.
  • done = seq(sequenceId)

  • sequenceId is the next incrementing id number of the job you are starting.

  • returns done. call this when you are done with the job.

  • seq = exports.starter(persist,options)

  • use this if you dont want to use seq-file to persist the sequence. like if you need to save it to a db.

  • persist, function(sequenceToSave,cb) a function that you would likle to use to save the sequence

    • cb, cb(err,data)
  • returns done. you call this function when you are done working on the job for the sequence. error is bubbled from the persist callback.

notes

job timeouts must be implemented on top of this module. otherwise a job that gets lost in narnia will prvent a new sequence from ever being saved.

Keywords

seq

FAQs

Package last updated on 12 Dec 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts