Merge pull request 'feat/concurrency' (#63) from feat/concurrency into main
Reviewed-on: #63
This commit is contained in:
commit
b51e119bcc
@ -13,7 +13,9 @@ import org.springframework.stereotype.Service;
|
|||||||
public class MangaIngestConsumer {
|
public class MangaIngestConsumer {
|
||||||
private final MangaIngestService mangaIngestService;
|
private final MangaIngestService mangaIngestService;
|
||||||
|
|
||||||
@RabbitListener(queues = "${queues.manga-ingest}")
|
@RabbitListener(
|
||||||
|
queues = "${queues.manga-ingest}",
|
||||||
|
concurrency = "${queues.manga-ingest-concurrency:3-5}")
|
||||||
public void receiveMangaIngestCommand(MangaIngestCommand command) {
|
public void receiveMangaIngestCommand(MangaIngestCommand command) {
|
||||||
log.info("Received manga ingest command: {}", command);
|
log.info("Received manga ingest command: {}", command);
|
||||||
mangaIngestService.ingestManga(command.providerId(), command.mangaTitle(), command.url());
|
mangaIngestService.ingestManga(command.providerId(), command.mangaTitle(), command.url());
|
||||||
|
|||||||
@ -36,6 +36,15 @@ public class MangaIngestService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mangaIngestReviewRepository.existsByMangaTitleIgnoreCaseAndContentProvider_Id(
|
||||||
|
mangaTitle, contentProviderId)) {
|
||||||
|
log.info(
|
||||||
|
"Manga ingest review already exists for manga with mangaTitle '{}' and provider {}, skipping ingest",
|
||||||
|
mangaTitle,
|
||||||
|
contentProviderId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var manga = mangaResolutionService.findOrCreateManga(mangaTitle);
|
var manga = mangaResolutionService.findOrCreateManga(mangaTitle);
|
||||||
if (isNull(manga)) {
|
if (isNull(manga)) {
|
||||||
createMangaIngestReview(mangaTitle, url, contentProviderId);
|
createMangaIngestReview(mangaTitle, url, contentProviderId);
|
||||||
@ -72,15 +81,6 @@ public class MangaIngestService {
|
|||||||
mangaTitle,
|
mangaTitle,
|
||||||
contentProviderId);
|
contentProviderId);
|
||||||
|
|
||||||
if (mangaIngestReviewRepository.existsByMangaTitleIgnoreCaseAndContentProvider_Id(
|
|
||||||
mangaTitle, contentProviderId)) {
|
|
||||||
log.info(
|
|
||||||
"Manga ingest review already exists for manga with mangaTitle '{}' and provider {}, skipping review creation",
|
|
||||||
mangaTitle,
|
|
||||||
contentProviderId);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var contentProvider = contentProviderService.find(contentProviderId);
|
var contentProvider = contentProviderService.find(contentProviderId);
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,9 @@ import org.springframework.stereotype.Service;
|
|||||||
public class ProviderPageIngestConsumer {
|
public class ProviderPageIngestConsumer {
|
||||||
private final IngestionService ingestionService;
|
private final IngestionService ingestionService;
|
||||||
|
|
||||||
@RabbitListener(queues = "${queues.provider-page-ingest}")
|
@RabbitListener(
|
||||||
|
queues = "${queues.provider-page-ingest}",
|
||||||
|
concurrency = "${queues.provider-page-ingest-concurrency:2-4}")
|
||||||
public void receiveProviderPageIngestCommand(ProviderPageIngestCommand command) {
|
public void receiveProviderPageIngestCommand(ProviderPageIngestCommand command) {
|
||||||
log.info("Received provider page ingest command: {}", command);
|
log.info("Received provider page ingest command: {}", command);
|
||||||
ingestionService.fetchProviderPageMangas(command.providerId(), command.page());
|
ingestionService.fetchProviderPageMangas(command.providerId(), command.page());
|
||||||
|
|||||||
@ -20,6 +20,11 @@ spring:
|
|||||||
max-request-size: 4GB
|
max-request-size: 4GB
|
||||||
cloud:
|
cloud:
|
||||||
openfeign:
|
openfeign:
|
||||||
|
client:
|
||||||
|
config:
|
||||||
|
default:
|
||||||
|
connect-timeout: 10000
|
||||||
|
read-timeout: 30000
|
||||||
rabbitmq:
|
rabbitmq:
|
||||||
host: ${RABBITMQ_HOST}
|
host: ${RABBITMQ_HOST}
|
||||||
port: ${RABBITMQ_PORT}
|
port: ${RABBITMQ_PORT}
|
||||||
@ -28,6 +33,7 @@ spring:
|
|||||||
listener:
|
listener:
|
||||||
simple:
|
simple:
|
||||||
default-requeue-rejected: false
|
default-requeue-rejected: false
|
||||||
|
prefetch: 10
|
||||||
data:
|
data:
|
||||||
redis:
|
redis:
|
||||||
host: ${REDIS_HOST:localhost}
|
host: ${REDIS_HOST:localhost}
|
||||||
@ -65,12 +71,14 @@ topics:
|
|||||||
|
|
||||||
queues:
|
queues:
|
||||||
manga-ingest: ${MANGA_INGEST_QUEUE:mangamochi.manga.ingest}
|
manga-ingest: ${MANGA_INGEST_QUEUE:mangamochi.manga.ingest}
|
||||||
|
manga-ingest-concurrency: 3-5
|
||||||
manga-update: ${MANGA_UPDATE_QUEUE:mangamochi.manga.update}
|
manga-update: ${MANGA_UPDATE_QUEUE:mangamochi.manga.update}
|
||||||
manga-content-ingest: ${MANGA_CONTENT_INGEST_QUEUE:mangamochi.manga.content.ingest}
|
manga-content-ingest: ${MANGA_CONTENT_INGEST_QUEUE:mangamochi.manga.content.ingest}
|
||||||
manga-content-image-ingest: ${MANGA_CONTENT_IMAGE_INGEST_QUEUE:mangamochi.manga.content.image.ingest}
|
manga-content-image-ingest: ${MANGA_CONTENT_IMAGE_INGEST_QUEUE:mangamochi.manga.content.image.ingest}
|
||||||
manga-content-image-update: ${MANGA_CONTENT_IMAGE_UPDATE_QUEUE:mangamochi.manga.content.image.update}
|
manga-content-image-update: ${MANGA_CONTENT_IMAGE_UPDATE_QUEUE:mangamochi.manga.content.image.update}
|
||||||
manga-content-image-delete: ${MANGA_CONTENT_IMAGE_DELETE_QUEUE:mangamochi.manga.content.image.delete}
|
manga-content-image-delete: ${MANGA_CONTENT_IMAGE_DELETE_QUEUE:mangamochi.manga.content.image.delete}
|
||||||
provider-page-ingest: ${PROVIDER_PAGE_INGEST_QUEUE:mangamochi.provider.page.ingest}
|
provider-page-ingest: ${PROVIDER_PAGE_INGEST_QUEUE:mangamochi.provider.page.ingest}
|
||||||
|
provider-page-ingest-concurrency: 2-4
|
||||||
image-fetch: ${IMAGE_FETCH_QUEUE:mangamochi.image.fetch}
|
image-fetch: ${IMAGE_FETCH_QUEUE:mangamochi.image.fetch}
|
||||||
manga-cover-update: ${MANGA_COVER_UDPATE_QUEUE:mangamochi.manga.cover.update}
|
manga-cover-update: ${MANGA_COVER_UDPATE_QUEUE:mangamochi.manga.cover.update}
|
||||||
file-import: ${FILE_IMPORT_QUEUE:mangamochi.file.import}
|
file-import: ${FILE_IMPORT_QUEUE:mangamochi.file.import}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user