Repositorio del curso CCOM4030 el semestre B91 del proyecto Artesanías con el Instituto de Cultura
lyxaira.glass 74ca844f42 Actualizacion cambios generados: seccion #12, #14 y #15. 4 anni fa
..
.github/workflows Actualizacion cambios generados: seccion #12, #14 y #15. 4 anni fa
test Actualizacion cambios generados: seccion #12, #14 y #15. 4 anni fa
LICENSE Actualizacion cambios generados: seccion #12, #14 y #15. 4 anni fa
README.md Actualizacion cambios generados: seccion #12, #14 y #15. 4 anni fa
bench.js Actualizacion cambios generados: seccion #12, #14 y #15. 4 anni fa
example.js Actualizacion cambios generados: seccion #12, #14 y #15. 4 anni fa
index.d.ts Actualizacion cambios generados: seccion #12, #14 y #15. 4 anni fa
package.json Actualizacion cambios generados: seccion #12, #14 y #15. 4 anni fa
queue.js Actualizacion cambios generados: seccion #12, #14 y #15. 4 anni fa

README.md

fastq

ci npm version Dependency Status

Fast, in memory work queue. fastq is API compatible with async.queue

Benchmarks (1 million tasks):

  • setImmediate: 812ms
  • fastq: 854ms
  • async.queue: 1298ms
  • neoAsync.queue: 1249ms

Obtained on node 12.16.1, on a dedicated server.

If you need zero-overhead series function call, check out fastseries. For zero-overhead parallel function call, check out fastparallel.

js-standard-style

Install

npm i fastq --save

Usage

'use strict'

var queue = require('fastq')(worker, 1)

queue.push(42, function (err, result) {
  if (err) { throw err }
  console.log('the result is', result)
})

function worker (arg, cb) {
  cb(null, 42 * 2)
}

Setting this

'use strict'

var that = { hello: 'world' }
var queue = require('fastq')(that, worker, 1)

queue.push(42, function (err, result) {
  if (err) { throw err }
  console.log(this)
  console.log('the result is', result)
})

function worker (arg, cb) {
  console.log(this)
  cb(null, 42 * 2)
}

API


fastqueue([that], worker, concurrency)

Creates a new queue.

Arguments:

  • that, optional context of the worker function.
  • worker, worker function, it would be called with that as this, if that is specified.
  • concurrency, number of concurrent tasks that could be executed in parallel.

queue.push(task, done)

Add a task at the end of the queue. done(err, result) will be called when the task was processed.


queue.unshift(task, done)

Add a task at the beginning of the queue. done(err, result) will be called when the task was processed.


queue.pause()

Pause the processing of tasks. Currently worked tasks are not stopped.


queue.resume()

Resume the processing of tasks.


queue.idle()

Returns false if there are tasks being processed or waiting to be processed. true otherwise.


queue.length()

Returns the number of tasks waiting to be processed (in the queue).


queue.getQueue()

Returns all the tasks be processed (in the queue). Returns empty array when there are no tasks


queue.kill()

Removes all tasks waiting to be processed, and reset drain to an empty function.


queue.killAndDrain()

Same than kill but the drain function will be called before reset to empty.


queue.concurrency

Property that returns the number of concurrent tasks that could be executed in parallel. It can be altered at runtime.


queue.drain

Function that will be called when the last item from the queue has been processed by a worker. It can be altered at runtime.


queue.empty

Function that will be called when the last item from the queue has been assigned to a worker. It can be altered at runtime.


queue.saturated

Function that will be called when the queue hits the concurrency limit. It can be altered at runtime.

License

ISC