1.2.2 • Published 5 months ago

@evlmaistrenko/tools-mongomq v1.2.2

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

@evlmaistrenko/tools-mongomq

NPM Version

Simple messages queue (MQ) using MongoDB.

Try to use it in case:

  • You already have MongoDB in your project
  • Need to organize some queue of tasks
  • Need queue data to be persist (i.e. not to lose messages due to restarts of application)
  • Don't want to add powerful brokers as a dependency of your project

Features:

Usage

npm i @evlmaistrenko/tools-mongomq
import * as mongoMq from "@evlmaistrenko/tools-mongomq";
import { MongoClient } from "mongodb";

const client = new MongoClient("<your connection string>");
await client.connect();

const messages = client
  .db("<your database name>")
  .collection("<your collection name>");

const queue = new mongoMq.Queue(messages);

// Publishing messages:
await queue.publish({ some: "value" });

// Publishing delayed messages:
await queue.publish(
  { some: "other value" },
  new Date("2099-12-30T19:00:00.000Z"),
);

// Consuming messages concurrently:
for await (let consume of queue.messages())
  consume(async (message) => {
    // do something with `message.payload`
  }).catch((error) => {
    // process `error`
  });

// With specified concurrency:
for await (let consume of queue.messages(5))
  consume(async (message) => {
    // do something with `message.payload`
  }).catch((error) => {
    // process `error`
  });

Api docs

1.2.2

5 months ago

1.2.1

5 months ago

1.2.0

5 months ago

1.1.1

9 months ago

1.1.0

9 months ago

1.0.0

9 months ago