@egomobile/queue-mongo

npm last build PRs Welcome

@egomobile/queue-mongo

Queue storage for @egomobile/queue, using MongoDB as backend.

Install

Execute the following command from your project folder, where your package.json file is stored:

npm install --save @egomobile/queue-mongo

Usage

import { Queue } from "@egomobile/queue";
import {
IMongoQueueStorageOptions,
MongoQueueStorage,
} from "@egomobile/queue-mongo";
import { MongoClient } from "mongodb";

let queue!: Queue;

async function main() {
const url = process.env.MONGO_URL?.trim() || "mongodb://localhost:27017";
const mongoClient = new MongoClient(url);
const db = mongoClient.db("my_database");

const storageOptions: IMongoQueueStorageOptions = {
getDb: () => {
return db;
},
};

queue = new Queue({
storageClass: MongoQueueStorage,
storageClassArgs: [storageOptions],
});

// register 2 tasks at once
queue.register({
// 1st
myTask1: async (context) => {
console.log("This is task 1 with following data:", context.data);
},

// 2nd
myTask2: async (context) => {
console.log("This is task 2 with following data:", context.data);
},
});

// anything is prepared, lets start the queue
await queue.start();

// first enqueue 2nd task
await queue.enqueue("myTask2", {
data: {
buzz: 5979,
},
});
// then 1st one
await queue.enqueue("myTask1", {
data: {
foo: "bar",
},
});
}

main().catch(console.error);

Documentation

The API documentation can be found here.

Generated using TypeDoc