From e17fe0e01e9975371d5161cfa0b9b3288293848f Mon Sep 17 00:00:00 2001 From: Rodrigo Verdiani Date: Sat, 29 Nov 2025 18:47:23 -0300 Subject: [PATCH] chore: move rabbitmq queue names to env --- .env | 15 ++++++------ .env.example | 20 ++++++++++++++++ .gitignore | 2 ++ .../mangamochi/config/RabbitConfig.java | 24 ++++++++++++------- .../queue/MangaChapterDownloadConsumer.java | 3 +-- .../queue/MangaChapterDownloadProducer.java | 3 +-- .../queue/UpdateMangaDataConsumer.java | 3 +-- .../queue/UpdateMangaDataProducer.java | 3 +-- .../UpdateMangaFollowChapterListConsumer.java | 3 +-- .../UpdateMangaFollowChapterListProducer.java | 3 +-- .../queue/UpdateMangaListConsumer.java | 3 +-- .../queue/UpdateMangaListProducer.java | 3 +-- src/main/resources/application.yml | 7 ++++++ 13 files changed, 60 insertions(+), 32 deletions(-) create mode 100644 .env.example diff --git a/.env b/.env index 1167246..6b87119 100644 --- a/.env +++ b/.env @@ -1,4 +1,4 @@ -DB_URL=jdbc:postgresql://localhost:5432/mangamochi?currentSchema=mangamochi +DB_URL=jdbc:postgresql://postgres.badger-pirarucu.ts.net:5432/mangamochi_dev?currentSchema=mangamochi_dev DB_USER=mangamochi DB_PASS=mangamochi @@ -7,15 +7,14 @@ MINIO_USER=rov MINIO_PASS=!E9v4i0v3 FLARESOLVERR_ENDPOINT=https://flare-solverr.badger-pirarucu.ts.net -WEBSCRAPPER_ENDPOINT=http://mangamochi.badger-pirarucu.ts.net:8090/url MANGAMATCHER_ENDPOINT=http://mangamochi.badger-pirarucu.ts.net:8000/match-title -MANGADEX_USER=rocverde -MANGADEX_PASS=!A3u8e4s0 -MANGADEX_CLIENT_ID=personal-client-3c21667a-6de3-4273-94c4-e6014690f128-68830913 -MANGADEX_CLIENT_SECRET=fXwbnGLhXqqpGrznQeX3uYQDxj6hyWbS - -RABBITMQ_HOST=localhost +RABBITMQ_HOST=rabbitmq.badger-pirarucu.ts.net RABBITMQ_PORT=5672 RABBITMQ_USERNAME=guest RABBITMQ_PASSWORD=guest + +MANGA_DATA_UPDATE_QUEUE=mangaDataUpdateQueueDev +MANGA_CHAPTER_DOWNLOAD_QUEUE=mangaChapterDownloadQueueDev +MANGA_LIST_UPDATE_QUEUE=mangaListUpdateQueueDev +MANGA_FOLLOW_UPDATE_CHAPTER_QUEUE=mangaFollowUpdateChapterQueueDev diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..40aed6a --- /dev/null +++ b/.env.example @@ -0,0 +1,20 @@ +DB_URL=jdbc:postgresql://localhost:5432/mangamochi?currentSchema=mangamochi +DB_USER= +DB_PASS= + +MINIO_ENDPOINT=http://localhost:9000 +MINIO_USER= +MINIO_PASS= + +FLARESOLVERR_ENDPOINT=localhost:8191 +MANGAMATCHER_ENDPOINT=localhost:8000 + +RABBITMQ_HOST=localhost +RABBITMQ_PORT=5672 +RABBITMQ_USERNAME=guest +RABBITMQ_PASSWORD=guest + +MANGA_DATA_UPDATE_QUEUE=mangaDataUpdateQueueSample +MANGA_CHAPTER_DOWNLOAD_QUEUE=mangaChapterDownloadQueueSample +MANGA_LIST_UPDATE_QUEUE=mangaListUpdateQueueSample +MANGA_FOLLOW_UPDATE_CHAPTER_QUEUE=mangaFollowUpdateChapterQueueSample \ No newline at end of file diff --git a/.gitignore b/.gitignore index 6ffd5a5..8dd4618 100644 --- a/.gitignore +++ b/.gitignore @@ -139,6 +139,8 @@ fabric.properties *.tar.gz *.rar +.env + # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* replay_pid* diff --git a/src/main/java/com/magamochi/mangamochi/config/RabbitConfig.java b/src/main/java/com/magamochi/mangamochi/config/RabbitConfig.java index eaa7780..09e13f0 100644 --- a/src/main/java/com/magamochi/mangamochi/config/RabbitConfig.java +++ b/src/main/java/com/magamochi/mangamochi/config/RabbitConfig.java @@ -4,34 +4,42 @@ import org.springframework.amqp.core.Queue; import org.springframework.amqp.rabbit.connection.ConnectionFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class RabbitConfig { - public static final String MANGA_DATA_UPDATE_QUEUE = "mangaDataUpdateQueue"; - public static final String MANGA_CHAPTER_DOWNLOAD_QUEUE = "mangaChapterDownloadQueue"; - public static final String MANGA_LIST_UPDATE_QUEUE = "mangaListUpdateQueue"; - public static final String MANGA_FOLLOW_UPDATE_CHAPTER_QUEUE = "mangaFollowUpdateChapterQueue"; + @Value("${rabbit-mq.queues.manga-data-update}") + private String mangaDataUpdateQueue; + + @Value("${rabbit-mq.queues.manga-chapter-download}") + private String mangaChapterDownloadQueue; + + @Value("${rabbit-mq.queues.manga-list-update}") + private String mangaListUpdateQueue; + + @Value("${rabbit-mq.queues.manga-follow-update-chapter}") + private String mangaFollowUpdateChapterQueue; @Bean public Queue mangaDataUpdateQueue() { - return new Queue(MANGA_DATA_UPDATE_QUEUE, false); + return new Queue(mangaDataUpdateQueue, false); } @Bean public Queue mangaChapterDownloadQueue() { - return new Queue(MANGA_CHAPTER_DOWNLOAD_QUEUE, false); + return new Queue(mangaChapterDownloadQueue, false); } @Bean public Queue mangaListUpdateQueue() { - return new Queue(MANGA_LIST_UPDATE_QUEUE, false); + return new Queue(mangaListUpdateQueue, false); } @Bean public Queue mangaFollowUpdateChapterQueue() { - return new Queue(MANGA_FOLLOW_UPDATE_CHAPTER_QUEUE, false); + return new Queue(mangaFollowUpdateChapterQueue, false); } @Bean diff --git a/src/main/java/com/magamochi/mangamochi/queue/MangaChapterDownloadConsumer.java b/src/main/java/com/magamochi/mangamochi/queue/MangaChapterDownloadConsumer.java index 3a9c018..3c286c2 100644 --- a/src/main/java/com/magamochi/mangamochi/queue/MangaChapterDownloadConsumer.java +++ b/src/main/java/com/magamochi/mangamochi/queue/MangaChapterDownloadConsumer.java @@ -1,6 +1,5 @@ package com.magamochi.mangamochi.queue; -import com.magamochi.mangamochi.config.RabbitConfig; import com.magamochi.mangamochi.model.dto.MangaChapterDownloadCommand; import com.magamochi.mangamochi.service.MangaChapterService; import lombok.RequiredArgsConstructor; @@ -14,7 +13,7 @@ import org.springframework.stereotype.Service; public class MangaChapterDownloadConsumer { private final MangaChapterService mangaChapterService; - @RabbitListener(queues = RabbitConfig.MANGA_CHAPTER_DOWNLOAD_QUEUE) + @RabbitListener(queues = "${rabbit-mq.queues.manga-chapter-download}") public void receiveMangaChapterDownloadCommand(MangaChapterDownloadCommand command) { log.info("Received manga chapter download command: {}", command); diff --git a/src/main/java/com/magamochi/mangamochi/queue/MangaChapterDownloadProducer.java b/src/main/java/com/magamochi/mangamochi/queue/MangaChapterDownloadProducer.java index 2b638ae..94ef453 100644 --- a/src/main/java/com/magamochi/mangamochi/queue/MangaChapterDownloadProducer.java +++ b/src/main/java/com/magamochi/mangamochi/queue/MangaChapterDownloadProducer.java @@ -1,6 +1,5 @@ package com.magamochi.mangamochi.queue; -import com.magamochi.mangamochi.config.RabbitConfig; import com.magamochi.mangamochi.model.dto.MangaChapterDownloadCommand; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -14,7 +13,7 @@ public class MangaChapterDownloadProducer { private final RabbitTemplate rabbitTemplate; public void sendMangaChapterDownloadCommand(MangaChapterDownloadCommand command) { - rabbitTemplate.convertAndSend(RabbitConfig.MANGA_CHAPTER_DOWNLOAD_QUEUE, command); + rabbitTemplate.convertAndSend("${rabbit-mq.queues.manga-chapter-download}", command); log.info("Sent manga chapter download command: {}", command); } } diff --git a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaDataConsumer.java b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaDataConsumer.java index d0cd79a..519c5bc 100644 --- a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaDataConsumer.java +++ b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaDataConsumer.java @@ -1,6 +1,5 @@ package com.magamochi.mangamochi.queue; -import com.magamochi.mangamochi.config.RabbitConfig; import com.magamochi.mangamochi.model.dto.UpdateMangaDataCommand; import com.magamochi.mangamochi.service.MangaImportService; import lombok.RequiredArgsConstructor; @@ -14,7 +13,7 @@ import org.springframework.stereotype.Service; public class UpdateMangaDataConsumer { private final MangaImportService mangaImportService; - @RabbitListener(queues = RabbitConfig.MANGA_DATA_UPDATE_QUEUE) + @RabbitListener(queues = "${rabbit-mq.queues.manga-data-update}") public void receiveUpdateMangaDataCommand(UpdateMangaDataCommand command) { log.info("Received update manga data command: {}", command); mangaImportService.updateMangaData(command.mangaId()); diff --git a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaDataProducer.java b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaDataProducer.java index 9e03594..7c3fc5f 100644 --- a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaDataProducer.java +++ b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaDataProducer.java @@ -1,6 +1,5 @@ package com.magamochi.mangamochi.queue; -import com.magamochi.mangamochi.config.RabbitConfig; import com.magamochi.mangamochi.model.dto.UpdateMangaDataCommand; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -14,7 +13,7 @@ public class UpdateMangaDataProducer { private final RabbitTemplate rabbitTemplate; public void sendUpdateMangaDataCommand(UpdateMangaDataCommand command) { - rabbitTemplate.convertAndSend(RabbitConfig.MANGA_DATA_UPDATE_QUEUE, command); + rabbitTemplate.convertAndSend("${rabbit-mq.queues.manga-data-update}", command); log.info("Sent update manga data command: {}", command); } } diff --git a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaFollowChapterListConsumer.java b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaFollowChapterListConsumer.java index 0695bba..4d1632f 100644 --- a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaFollowChapterListConsumer.java +++ b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaFollowChapterListConsumer.java @@ -1,6 +1,5 @@ package com.magamochi.mangamochi.queue; -import com.magamochi.mangamochi.config.RabbitConfig; import com.magamochi.mangamochi.model.dto.UpdateMangaFollowChapterListCommand; import com.magamochi.mangamochi.service.MangaService; import lombok.RequiredArgsConstructor; @@ -14,7 +13,7 @@ import org.springframework.stereotype.Service; public class UpdateMangaFollowChapterListConsumer { private final MangaService mangaService; - @RabbitListener(queues = RabbitConfig.MANGA_FOLLOW_UPDATE_CHAPTER_QUEUE) + @RabbitListener(queues = "${rabbit-mq.queues.manga-follow-update-chapter}") public void receiveMangaFollowUpdateChapterCommand(UpdateMangaFollowChapterListCommand command) { log.info("Received update followed manga chapter list command: {}", command); mangaService.fetchFollowedMangaChapters(command.mangaProviderId()); diff --git a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaFollowChapterListProducer.java b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaFollowChapterListProducer.java index d1e3c2f..2ed1745 100644 --- a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaFollowChapterListProducer.java +++ b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaFollowChapterListProducer.java @@ -1,6 +1,5 @@ package com.magamochi.mangamochi.queue; -import com.magamochi.mangamochi.config.RabbitConfig; import com.magamochi.mangamochi.model.dto.UpdateMangaFollowChapterListCommand; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -14,7 +13,7 @@ public class UpdateMangaFollowChapterListProducer { private final RabbitTemplate rabbitTemplate; public void sendUpdateMangaFollowChapterListCommand(UpdateMangaFollowChapterListCommand command) { - rabbitTemplate.convertAndSend(RabbitConfig.MANGA_FOLLOW_UPDATE_CHAPTER_QUEUE, command); + rabbitTemplate.convertAndSend("${rabbit-mq.queues.manga-follow-update-chapter}", command); log.info("Sent update followed manga chapter list command: {}", command); } } diff --git a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaListConsumer.java b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaListConsumer.java index 38925c3..e8e3a0b 100644 --- a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaListConsumer.java +++ b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaListConsumer.java @@ -1,6 +1,5 @@ package com.magamochi.mangamochi.queue; -import com.magamochi.mangamochi.config.RabbitConfig; import com.magamochi.mangamochi.model.dto.MangaListUpdateCommand; import com.magamochi.mangamochi.service.MangaListService; import lombok.RequiredArgsConstructor; @@ -14,7 +13,7 @@ import org.springframework.stereotype.Service; public class UpdateMangaListConsumer { private final MangaListService mangaListService; - @RabbitListener(queues = RabbitConfig.MANGA_LIST_UPDATE_QUEUE) + @RabbitListener(queues = "${rabbit-mq.queues.manga-list-update}") public void receiveUpdateMangaListCommand(MangaListUpdateCommand command) { log.info("Received update manga list command: {}", command); mangaListService.updateMangaList(command.contentProviderName(), command.page()); diff --git a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaListProducer.java b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaListProducer.java index 167e66b..3c05059 100644 --- a/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaListProducer.java +++ b/src/main/java/com/magamochi/mangamochi/queue/UpdateMangaListProducer.java @@ -1,6 +1,5 @@ package com.magamochi.mangamochi.queue; -import com.magamochi.mangamochi.config.RabbitConfig; import com.magamochi.mangamochi.model.dto.MangaListUpdateCommand; import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @@ -14,7 +13,7 @@ public class UpdateMangaListProducer { private final RabbitTemplate rabbitTemplate; public void sendUpdateMangaListCommand(MangaListUpdateCommand command) { - rabbitTemplate.convertAndSend(RabbitConfig.MANGA_LIST_UPDATE_QUEUE, command); + rabbitTemplate.convertAndSend("${rabbit-mq.queues.manga-list-update}", command); log.info("Sent update manga list command: {}", command); } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index a98a321..895fa4a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -78,6 +78,13 @@ resilience4j: retry-exceptions: - feign.FeignException +rabbit-mq: + queues: + manga-data-update: ${MANGA_DATA_UPDATE_QUEUE:mangaDataUpdateQueue} + manga-chapter-download: ${MANGA_CHAPTER_DOWNLOAD_QUEUE:mangaChapterDownloadQueue} + manga-list-update: ${MANGA_LIST_UPDATE_QUEUE:mangaListUpdateQueue} + manga-follow-update-chapter: ${MANGA_FOLLOW_UPDATE_CHAPTER_QUEUE:mangaFollowUpdateChapterQueue} + image-service: clean-up-enabled: ${IMAGE_SERVICE_CLEAN_UP_ENABLED:false} cron-expression: "@weekly"