diff --git a/src/config/index.spec.ts b/src/config/index.spec.ts new file mode 100644 index 00000000..a163af85 --- /dev/null +++ b/src/config/index.spec.ts @@ -0,0 +1,11 @@ +import {config} from './index'; + +describe('rabbitmq queue options', () => { + // RabbitMQ refuses a redeclare with different arguments, so these must equal the aggregator's ApiQueue + it('declares the api queue memory-only, matching the aggregator', () => { + expect(config().rabbitmq.queueOptions).toEqual({ + durable: false, + messageTtl: 10800000, + }); + }); +}); diff --git a/src/config/index.ts b/src/config/index.ts index 3d99c928..70dffecb 100644 --- a/src/config/index.ts +++ b/src/config/index.ts @@ -32,12 +32,10 @@ export const config = () => ({ rabbitmq: { url: [process.env.RABBITMQ_URL ?? `amqp://${process.env.RABBITMQ_USER ?? 'guest'}:${process.env.RABBITMQ_PASS ?? 'guest'}@${process.env.RABBITMQ_HOST ?? 'localhost'}:5672${process.env.RABBITMQ_VHOST ?? ''}?heartbeat=10&connection_timeout=10000`], queue: process.env.RABBITMQ_QUEUE ?? 'api-queue', + // Memory-only, and must match the aggregator's ApiQueue declaration or whichever declares second fails queueOptions: { - durable: true, + durable: false, messageTtl: 10800000, // 3 hours - arguments: { - 'x-queue-mode': 'lazy', - }, }, noAck: false, prefetchCount: process.env.RABBITMQ_PREFETCH ? parseInt(process.env.RABBITMQ_PREFETCH, 10) : 2000,