Skip to content
Contents

MongoDB

Background supports MongoDB. MongoDB queue and storage relies on mongodb package.

Please install it as below

bash
npm install mongodb

Example Usage

typescript
import { MongoDBJobStorage, MongoDBJobQueue} from "@backgroundjs/core";
import { MongoClient } from "mongodb";

const client = new MongoClient(process.env.MONGODB_URL!);
client
  .connect()
  .then(() => {
    console.log("Connected to MongoDB");
  })
  .catch((err) => {
    console.error("Error connecting to MongoDB", err);
  });

const storage = new MongoDBJobStorage(client, {
  collectionName: "jobs",
});

const queue = new MongoDBJobQueue(storage, {
  concurrency: 2,
  maxRetries: 3,
  name: "test-queue",
  processingInterval: 1000,
});

queue.register("test-job", async (data) => {
  await new Promise((resolve) => setTimeout(resolve, 3000));
  return data;
});

await queue.add("test-job",{message:"hello from mongodb job"})

await queue.add("test-job",{message:"hello from mongodb job"},{priority:5})

await queue.addRepeatable("test-job",{message:"hello from the mongodb repeatable"},{
    every: 1,
    unit: "seconds",
})

const scheduledTime = new Date(Date.now() + 1000 * 60);

await queue.schedule("test-job",{message:"scheduled job"},scheduledTime)