🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

@balena/jellyfish-queue

Package Overview
Dependencies
Maintainers
1
Versions
2920
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@balena/jellyfish-queue

Queue library for Jellyfish

4.1.31
latest
Source
npm
Version published
Weekly downloads
3.6K
6.06%
Maintainers
1
Weekly downloads
 
Created
Source

Notice: This utility has been discontinued. The functionality provided by this module has been merged into jellyfish-worker.

Jellyfish Queue

The Jellyfish system processes incoming action requests and adds them to a queue so that they can be retrieved and executed in order.

This module provides a small set of functions to perform any queue-related operations, and should be utilized by any module requiring interaction with queued objects.

Note that, although jellyfish-queue is mostly used for enqueuing action requests, it could also be used to support handling other types of objects as well.

Under-the-hood, this module makes use of graphile-worker, a persistent job queue that supports PostgreSQL and can be used to run jobs "in the background" so that application code is not held up.

Goals

  • The queue aims to be fast
  • The queue aims to be a layer on top of jellyfish-core to allow for the effective management of queued objects of any type.

Usage

Below is an example how to use this library:

import { Consumer } from '@balena/jellyfish-queue';
import type { ActionRequestContract } from '@balena/jellyfish-types/build/core';

const producer = new Producer(kernel, kernel.sessions.admin);
await producer.initialize(context);

const consumer = new Consumer(kernel, kernel.sessions.admin);
await consumer.initializeWithEventHandler(
  logContext,
  async (payload: ActionRequestContract): void => {
    console.log("Message received: ", payload)
  }
)

Documentation

Publish Documentation

Visit the website for complete documentation: https://product-os.github.io/jellyfish-queue

Testing

Unit tests can be easily run with the command npm test.

The integration tests require Postgres and Redis instances. The simplest way to run the tests locally is with docker-compose.

$ npm run test:compose

You can also run tests locally against Postgres and Redis instances running in docker-compose:

$ npm run compose
$ REDIS_HOST=localhost POSTGRES_HOST=localhost npx jest test/integration/queue/index.spec.ts

You can also access these Postgres and Redis instances:

$ PGPASSWORD=docker psql -hlocalhost -Udocker
$ redis-cli -h localhost

FAQs

Package last updated on 25 Mar 2022

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