Skip to content

In-memory driver

The in-memory driver is a driver that stores jobs in memory. It is useful for testing and development or simple single-process applications.

The in-memory driver can be installed with the @cadence-mq/driver-memory package.

pnpm add @cadence-mq/core @cadence-mq/driver-memory

Here is a simple example of how to use the in-memory driver.

index.ts
import { createCadence } from '@cadence-mq/core';
import { createMemoryDriver } from '@cadence-mq/driver-memory';
const driver = createMemoryDriver();
const cadence = createCadence({ driver });
17 collapsed lines
// Register a task to be executed
cadence.registerTask({
taskName: 'send-welcome-email',
handler: async ({ data }) => {
console.log(`Sending welcome email to ${data.email}`);
},
});
// Create a worker to execute the jobs
const worker = cadence.createWorker({ workerId: '1' });
worker.start();
// Schedule a job to be executed as soon as possible
await cadence.scheduleJob({
taskName: 'send-welcome-email',
data: { email: 'test@test.com' },
});

As the job queue is stored in memory, it has the following limitations:

  • No persistence: The in-memory driver does not persist jobs between restarts.
  • No distributed support: The in-memory driver does not support multi-process distributed systems.
  • Memory consumption: As the job queue is stored in memory, it will consume memory as the number of jobs increases, it is recommended to remove jobs that are no longer needed.