chore: move rabbitmq queue names to env

This commit is contained in:
Rodrigo Verdiani 2025-11-29 18:47:23 -03:00
parent 4a66797c79
commit e17fe0e01e
13 changed files with 60 additions and 32 deletions

15
.env
View File

@ -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_USER=mangamochi
DB_PASS=mangamochi DB_PASS=mangamochi
@ -7,15 +7,14 @@ MINIO_USER=rov
MINIO_PASS=!E9v4i0v3 MINIO_PASS=!E9v4i0v3
FLARESOLVERR_ENDPOINT=https://flare-solverr.badger-pirarucu.ts.net 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 MANGAMATCHER_ENDPOINT=http://mangamochi.badger-pirarucu.ts.net:8000/match-title
MANGADEX_USER=rocverde RABBITMQ_HOST=rabbitmq.badger-pirarucu.ts.net
MANGADEX_PASS=!A3u8e4s0
MANGADEX_CLIENT_ID=personal-client-3c21667a-6de3-4273-94c4-e6014690f128-68830913
MANGADEX_CLIENT_SECRET=fXwbnGLhXqqpGrznQeX3uYQDxj6hyWbS
RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672 RABBITMQ_PORT=5672
RABBITMQ_USERNAME=guest RABBITMQ_USERNAME=guest
RABBITMQ_PASSWORD=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

20
.env.example Normal file
View File

@ -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

2
.gitignore vendored
View File

@ -139,6 +139,8 @@ fabric.properties
*.tar.gz *.tar.gz
*.rar *.rar
.env
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid* hs_err_pid*
replay_pid* replay_pid*

View File

@ -4,34 +4,42 @@ import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.connection.ConnectionFactory; import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter; 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.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
public class RabbitConfig { public class RabbitConfig {
public static final String MANGA_DATA_UPDATE_QUEUE = "mangaDataUpdateQueue"; @Value("${rabbit-mq.queues.manga-data-update}")
public static final String MANGA_CHAPTER_DOWNLOAD_QUEUE = "mangaChapterDownloadQueue"; private String mangaDataUpdateQueue;
public static final String MANGA_LIST_UPDATE_QUEUE = "mangaListUpdateQueue";
public static final String MANGA_FOLLOW_UPDATE_CHAPTER_QUEUE = "mangaFollowUpdateChapterQueue"; @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 @Bean
public Queue mangaDataUpdateQueue() { public Queue mangaDataUpdateQueue() {
return new Queue(MANGA_DATA_UPDATE_QUEUE, false); return new Queue(mangaDataUpdateQueue, false);
} }
@Bean @Bean
public Queue mangaChapterDownloadQueue() { public Queue mangaChapterDownloadQueue() {
return new Queue(MANGA_CHAPTER_DOWNLOAD_QUEUE, false); return new Queue(mangaChapterDownloadQueue, false);
} }
@Bean @Bean
public Queue mangaListUpdateQueue() { public Queue mangaListUpdateQueue() {
return new Queue(MANGA_LIST_UPDATE_QUEUE, false); return new Queue(mangaListUpdateQueue, false);
} }
@Bean @Bean
public Queue mangaFollowUpdateChapterQueue() { public Queue mangaFollowUpdateChapterQueue() {
return new Queue(MANGA_FOLLOW_UPDATE_CHAPTER_QUEUE, false); return new Queue(mangaFollowUpdateChapterQueue, false);
} }
@Bean @Bean

View File

@ -1,6 +1,5 @@
package com.magamochi.mangamochi.queue; package com.magamochi.mangamochi.queue;
import com.magamochi.mangamochi.config.RabbitConfig;
import com.magamochi.mangamochi.model.dto.MangaChapterDownloadCommand; import com.magamochi.mangamochi.model.dto.MangaChapterDownloadCommand;
import com.magamochi.mangamochi.service.MangaChapterService; import com.magamochi.mangamochi.service.MangaChapterService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -14,7 +13,7 @@ import org.springframework.stereotype.Service;
public class MangaChapterDownloadConsumer { public class MangaChapterDownloadConsumer {
private final MangaChapterService mangaChapterService; private final MangaChapterService mangaChapterService;
@RabbitListener(queues = RabbitConfig.MANGA_CHAPTER_DOWNLOAD_QUEUE) @RabbitListener(queues = "${rabbit-mq.queues.manga-chapter-download}")
public void receiveMangaChapterDownloadCommand(MangaChapterDownloadCommand command) { public void receiveMangaChapterDownloadCommand(MangaChapterDownloadCommand command) {
log.info("Received manga chapter download command: {}", command); log.info("Received manga chapter download command: {}", command);

View File

@ -1,6 +1,5 @@
package com.magamochi.mangamochi.queue; package com.magamochi.mangamochi.queue;
import com.magamochi.mangamochi.config.RabbitConfig;
import com.magamochi.mangamochi.model.dto.MangaChapterDownloadCommand; import com.magamochi.mangamochi.model.dto.MangaChapterDownloadCommand;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
@ -14,7 +13,7 @@ public class MangaChapterDownloadProducer {
private final RabbitTemplate rabbitTemplate; private final RabbitTemplate rabbitTemplate;
public void sendMangaChapterDownloadCommand(MangaChapterDownloadCommand command) { 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); log.info("Sent manga chapter download command: {}", command);
} }
} }

View File

@ -1,6 +1,5 @@
package com.magamochi.mangamochi.queue; package com.magamochi.mangamochi.queue;
import com.magamochi.mangamochi.config.RabbitConfig;
import com.magamochi.mangamochi.model.dto.UpdateMangaDataCommand; import com.magamochi.mangamochi.model.dto.UpdateMangaDataCommand;
import com.magamochi.mangamochi.service.MangaImportService; import com.magamochi.mangamochi.service.MangaImportService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -14,7 +13,7 @@ import org.springframework.stereotype.Service;
public class UpdateMangaDataConsumer { public class UpdateMangaDataConsumer {
private final MangaImportService mangaImportService; private final MangaImportService mangaImportService;
@RabbitListener(queues = RabbitConfig.MANGA_DATA_UPDATE_QUEUE) @RabbitListener(queues = "${rabbit-mq.queues.manga-data-update}")
public void receiveUpdateMangaDataCommand(UpdateMangaDataCommand command) { public void receiveUpdateMangaDataCommand(UpdateMangaDataCommand command) {
log.info("Received update manga data command: {}", command); log.info("Received update manga data command: {}", command);
mangaImportService.updateMangaData(command.mangaId()); mangaImportService.updateMangaData(command.mangaId());

View File

@ -1,6 +1,5 @@
package com.magamochi.mangamochi.queue; package com.magamochi.mangamochi.queue;
import com.magamochi.mangamochi.config.RabbitConfig;
import com.magamochi.mangamochi.model.dto.UpdateMangaDataCommand; import com.magamochi.mangamochi.model.dto.UpdateMangaDataCommand;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
@ -14,7 +13,7 @@ public class UpdateMangaDataProducer {
private final RabbitTemplate rabbitTemplate; private final RabbitTemplate rabbitTemplate;
public void sendUpdateMangaDataCommand(UpdateMangaDataCommand command) { 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); log.info("Sent update manga data command: {}", command);
} }
} }

View File

@ -1,6 +1,5 @@
package com.magamochi.mangamochi.queue; package com.magamochi.mangamochi.queue;
import com.magamochi.mangamochi.config.RabbitConfig;
import com.magamochi.mangamochi.model.dto.UpdateMangaFollowChapterListCommand; import com.magamochi.mangamochi.model.dto.UpdateMangaFollowChapterListCommand;
import com.magamochi.mangamochi.service.MangaService; import com.magamochi.mangamochi.service.MangaService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -14,7 +13,7 @@ import org.springframework.stereotype.Service;
public class UpdateMangaFollowChapterListConsumer { public class UpdateMangaFollowChapterListConsumer {
private final MangaService mangaService; 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) { public void receiveMangaFollowUpdateChapterCommand(UpdateMangaFollowChapterListCommand command) {
log.info("Received update followed manga chapter list command: {}", command); log.info("Received update followed manga chapter list command: {}", command);
mangaService.fetchFollowedMangaChapters(command.mangaProviderId()); mangaService.fetchFollowedMangaChapters(command.mangaProviderId());

View File

@ -1,6 +1,5 @@
package com.magamochi.mangamochi.queue; package com.magamochi.mangamochi.queue;
import com.magamochi.mangamochi.config.RabbitConfig;
import com.magamochi.mangamochi.model.dto.UpdateMangaFollowChapterListCommand; import com.magamochi.mangamochi.model.dto.UpdateMangaFollowChapterListCommand;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
@ -14,7 +13,7 @@ public class UpdateMangaFollowChapterListProducer {
private final RabbitTemplate rabbitTemplate; private final RabbitTemplate rabbitTemplate;
public void sendUpdateMangaFollowChapterListCommand(UpdateMangaFollowChapterListCommand command) { 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); log.info("Sent update followed manga chapter list command: {}", command);
} }
} }

View File

@ -1,6 +1,5 @@
package com.magamochi.mangamochi.queue; package com.magamochi.mangamochi.queue;
import com.magamochi.mangamochi.config.RabbitConfig;
import com.magamochi.mangamochi.model.dto.MangaListUpdateCommand; import com.magamochi.mangamochi.model.dto.MangaListUpdateCommand;
import com.magamochi.mangamochi.service.MangaListService; import com.magamochi.mangamochi.service.MangaListService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -14,7 +13,7 @@ import org.springframework.stereotype.Service;
public class UpdateMangaListConsumer { public class UpdateMangaListConsumer {
private final MangaListService mangaListService; private final MangaListService mangaListService;
@RabbitListener(queues = RabbitConfig.MANGA_LIST_UPDATE_QUEUE) @RabbitListener(queues = "${rabbit-mq.queues.manga-list-update}")
public void receiveUpdateMangaListCommand(MangaListUpdateCommand command) { public void receiveUpdateMangaListCommand(MangaListUpdateCommand command) {
log.info("Received update manga list command: {}", command); log.info("Received update manga list command: {}", command);
mangaListService.updateMangaList(command.contentProviderName(), command.page()); mangaListService.updateMangaList(command.contentProviderName(), command.page());

View File

@ -1,6 +1,5 @@
package com.magamochi.mangamochi.queue; package com.magamochi.mangamochi.queue;
import com.magamochi.mangamochi.config.RabbitConfig;
import com.magamochi.mangamochi.model.dto.MangaListUpdateCommand; import com.magamochi.mangamochi.model.dto.MangaListUpdateCommand;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
@ -14,7 +13,7 @@ public class UpdateMangaListProducer {
private final RabbitTemplate rabbitTemplate; private final RabbitTemplate rabbitTemplate;
public void sendUpdateMangaListCommand(MangaListUpdateCommand command) { 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); log.info("Sent update manga list command: {}", command);
} }
} }

View File

@ -78,6 +78,13 @@ resilience4j:
retry-exceptions: retry-exceptions:
- feign.FeignException - 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: image-service:
clean-up-enabled: ${IMAGE_SERVICE_CLEAN_UP_ENABLED:false} clean-up-enabled: ${IMAGE_SERVICE_CLEAN_UP_ENABLED:false}
cron-expression: "@weekly" cron-expression: "@weekly"