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)