From 6b5bfa963eaa592783fe249e99ea1d396841c921 Mon Sep 17 00:00:00 2001 From: Tom Date: Fri, 28 Feb 2025 02:46:02 +0000 Subject: [PATCH] Added logs for queues. --- backend/nestjs-seshat-api/src/app.module.ts | 4 ++- .../src/library/library.consumer.ts | 28 +++++++++++++++++-- .../src/logging.serializers.ts | 12 ++++++++ .../src/providers/google/google.service.ts | 1 - 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/backend/nestjs-seshat-api/src/app.module.ts b/backend/nestjs-seshat-api/src/app.module.ts index c109431..701a199 100644 --- a/backend/nestjs-seshat-api/src/app.module.ts +++ b/backend/nestjs-seshat-api/src/app.module.ts @@ -11,7 +11,7 @@ import { UsersModule } from './users/users.module'; import { UserEntity } from './users/entities/users.entity'; import { AuthModule } from './auth/auth.module'; import { LoggerModule } from 'nestjs-pino'; -import { serialize_token, serialize_user_short, serialize_user_long, serialize_res, serialize_req } from './logging.serializers'; +import { serialize_token, serialize_user_short, serialize_user_long, serialize_res, serialize_req, serialize_job } from './logging.serializers'; import { BooksModule } from './books/books.module'; import { ProvidersModule } from './providers/providers.module'; import { SeriesModule } from './series/series.module'; @@ -51,12 +51,14 @@ import { BullModule } from '@nestjs/bullmq'; user: value => serialize_user_long(value), access_token: value => serialize_token(value), refresh_token: value => serialize_token(value), + job: value => serialize_job(value), req: value => serialize_req(value), res: value => serialize_res(value), } : { user: value => serialize_user_short(value), access_token: value => serialize_token(value), refresh_token: value => serialize_token(value), + job: value => serialize_job(value), req: value => serialize_req(value), res: value => serialize_res(value), }, diff --git a/backend/nestjs-seshat-api/src/library/library.consumer.ts b/backend/nestjs-seshat-api/src/library/library.consumer.ts index f0cf956..8f6649d 100644 --- a/backend/nestjs-seshat-api/src/library/library.consumer.ts +++ b/backend/nestjs-seshat-api/src/library/library.consumer.ts @@ -19,7 +19,13 @@ export class LibraryConsumer extends WorkerHost { } async process(job: Job, token?: string): Promise { - console.log('job started:', job.name, job.data, job.id); + this.logger.info({ + class: LibraryConsumer.name, + method: this.process.name, + job: job, + msg: 'Started task on queue.', + }); + const series: CreateSeriesSubscriptionJobDto = job.data; let context = this.provider.generateSearchContext(series.provider, series.title) as GoogleSearchContext; @@ -52,9 +58,22 @@ export class LibraryConsumer extends WorkerHost { .filter((_, index, arr) => index == 0 || arr[index - 1].result.volume != arr[index].result.volume); job.updateProgress(25); + this.logger.debug({ + class: LibraryConsumer.name, + method: this.process.name, + job: job, + msg: 'Finished searching for book entries.', + results: { + pages: pageSearchedCount, + related_entries: related.length, + volumes: books.length, + } + }); + let counter = 0; for (let book of books) { try { + // Force the provider's series id to be set, so that we know which series this belongs. book.result.providerSeriesId = series.providerSeriesId; await this.library.addBook(book.result); } catch (err) { @@ -72,7 +91,12 @@ export class LibraryConsumer extends WorkerHost { } } - console.log('job completed:', job.name, job.data, job.id); + this.logger.info({ + class: LibraryConsumer.name, + method: this.process.name, + job: job, + msg: 'Completed task on queue.', + }); return null; } diff --git a/backend/nestjs-seshat-api/src/logging.serializers.ts b/backend/nestjs-seshat-api/src/logging.serializers.ts index 965b5c7..b0d0eff 100644 --- a/backend/nestjs-seshat-api/src/logging.serializers.ts +++ b/backend/nestjs-seshat-api/src/logging.serializers.ts @@ -79,3 +79,15 @@ export function serialize_res(value) { } return value; } + +export function serialize_job(value) { + if (!value) { + return value; + } + + return { + id: value.id, + name: value.name, + data: value.data, + } +} diff --git a/backend/nestjs-seshat-api/src/providers/google/google.service.ts b/backend/nestjs-seshat-api/src/providers/google/google.service.ts index 49f44f7..e9e6040 100644 --- a/backend/nestjs-seshat-api/src/providers/google/google.service.ts +++ b/backend/nestjs-seshat-api/src/providers/google/google.service.ts @@ -30,7 +30,6 @@ export class GoogleService { const defaultQueryParams = 'langRestrict=en&printType=books&fields=items(kind,id,volumeInfo(title,description,authors,publisher,publishedDate,industryIdentifiers,language,categories,maturityRating,imageLinks,canonicalVolumeLink,seriesInfo))'; const customQueryParams = context.generateQueryParams(); - console.log(defaultQueryParams, customQueryParams); return await firstValueFrom( this.http.get('https://www.googleapis.com/books/v1/volumes?' + defaultQueryParams + '&' + customQueryParams)