From 00919165e81fa836da6f9924b7fca62f67bfd2d4 Mon Sep 17 00:00:00 2001
From: Jonas Schlabertz <jonas@schlabertz.de>
Date: Sat, 25 Jun 2022 19:35:57 +0200
Subject: [PATCH] Boosts performance.

---
 API.paw                          | Bin 30281 -> 30267 bytes
 src/services/IngestionService.ts |   6 ++++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/API.paw b/API.paw
index 1a6987ce4a100f1b51b1ca50c332af3fc3fb11e1..ba6dcaff425692893fe3aba73cbd1315f7998830 100644
GIT binary patch
delta 3404
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
bNwF!hXJfC$-iZA_d1t;n<ND1v^9$GjTra}>

delta 3371
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

diff --git a/src/services/IngestionService.ts b/src/services/IngestionService.ts
index b819da0..f795aa6 100644
--- a/src/services/IngestionService.ts
+++ b/src/services/IngestionService.ts
@@ -64,8 +64,10 @@ class IngestionService {
     start(): void {
         logger.info("Starting IngestionService");
 
-        // Only one message should be processed at a time.
-        this.channel.prefetch(1);
+        // Process up to three messages at a time.
+        // While one message waits for the database, 
+        // the other two can be processed.
+        this.channel.prefetch(3);
 
         this.channel.consume(config.rabbitMQ.queue, (message) => {
             if(!message) {
-- 
GitLab