Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@rokketlabs/simple-bull

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rokketlabs/simple-bull

Functional programming wrapper for bull.js library

  • 1.2.3
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Simple Bull

Librería para crear Jobs estables de forma muy simple

Prerequisitos

Simple bull es una librería de Node que usa Redis como sistema de cola, por lo tanto, antes de comenzar asegurate de tener Redis instalado de forma local.

Instalación

Usando npm:

npm install --save @rokketlabs/simple-bull

Usando yarn:

yarn add @rokketlabs/simple-bull

Uso

Simple Bull es una librería que permite que te permite hacer workers de forma sencilla para que solo te preocupes de tu código, y no de que los jobs se ejecuten de forma correcta.

La parte central de todos los workers son las colas, estas se registran en redis, y a cada cola se le pueden asignar todos los workers que desees:

Registro de colas
import { initQueue } from '@rokketlabs/simple-bull'

initQueue({
  queueName: 'email-queue'
  jobs:[sendEmail, checkEmail]
})

En este caso la cola email-queue se registra en redis cuando se levante el servidor, y asociada a esta cola se encuentra los jobs sendEmail y checkEmail.

Jobs Recurrentes
import checkEmail from './checkEmail'

export default {
	name: 'checkEmail',    // Nombre del job
	processor: checkEmail, // Función que se desea ejecutar
	frequency: 5000        // Recurrencia del job
	delay: 1000			   // Tiempo de espera
	limit: 10000           // Duración máxima del job
	onSuccess: (currentJob, logger) => {
		logger(`${currentJob.name} success !!`)
	}
}

Los jobs recurrentes se usan cuando se desea ejecutar una función cada cierto tiempo, en este ejemplo, el job para revisar emails se ejecuta cada 5 segundos, esperando 1 segundo para comenzar la ejecución, y cuando este tome más de 10 segundos simple-bull mata el proceso ya que le pusimos un límite de 10000 ms.

Además existen dos hooks que permiten ejecutar más funciones de acuerdo al resultado del job, en este caso si se ejecuta de forma correcta lanza un mensaje personalizado.

Jobs de Eventos
import sendEmail from './sendEmail';

export default {
  name: 'sendEmail', // Nombre del job
  processor: sendEmail, // Función que se desea ejecutar
  onSuccess: (currentJob, logger) => {
    logger(`${currentJob.name} success !!`);
  }
};

Para dejar Jobs disponibles de forma remota, solamente debes remover el atributo frequency, de esta forma simple-bull asume que es un job que solamente se puede activar a través de eventos, para dispararlo de forma remota solamente debes apuntar al mismo redis que el job y llamar la siguiente funcion

import {fireJob} from '@rokketlabs/simple-bull'

await fireJob({
	queueName: 'email-queue',
	jobName: 'send-email'
	data: {email: 'x@x.x', message: 'Hi'}
})

En este caso otro servidor activa el job send-email, con el mensaje que desea enviar.

Hecho con:

  • Bull - Libería de Jobs

Autor

License

Simple Bull lincence it's MIT, happy coding ;) MIT © Roberto Zibert

Keywords

FAQs

Package last updated on 04 Nov 2019

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

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