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.
Installation
Section titled “Installation”The in-memory driver can be installed with the @cadence-mq/driver-memory
package.
pnpm add @cadence-mq/core @cadence-mq/driver-memory
npm install @cadence-mq/core @cadence-mq/driver-memory
bun add @cadence-mq/core @cadence-mq/driver-memory
yarn add @cadence-mq/core @cadence-mq/driver-memory
Here is a simple example of how to use the in-memory driver.
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 executedcadence.registerTask({ taskName: 'send-welcome-email', handler: async ({ data }) => { console.log(`Sending welcome email to ${data.email}`); },});
// Create a worker to execute the jobsconst worker = cadence.createWorker({ workerId: '1' });worker.start();
// Schedule a job to be executed as soon as possibleawait cadence.scheduleJob({ taskName: 'send-welcome-email', data: { email: 'test@test.com' },});
Limitations
Section titled “Limitations”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.