Added logs for queues.

This commit is contained in:
Tom
2025-02-28 02:46:02 +00:00
parent 969829da20
commit 6b5bfa963e
4 changed files with 41 additions and 4 deletions

View File

@ -11,7 +11,7 @@ import { UsersModule } from './users/users.module';
import { UserEntity } from './users/entities/users.entity'; import { UserEntity } from './users/entities/users.entity';
import { AuthModule } from './auth/auth.module'; import { AuthModule } from './auth/auth.module';
import { LoggerModule } from 'nestjs-pino'; 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 { BooksModule } from './books/books.module';
import { ProvidersModule } from './providers/providers.module'; import { ProvidersModule } from './providers/providers.module';
import { SeriesModule } from './series/series.module'; import { SeriesModule } from './series/series.module';
@ -51,12 +51,14 @@ import { BullModule } from '@nestjs/bullmq';
user: value => serialize_user_long(value), user: value => serialize_user_long(value),
access_token: value => serialize_token(value), access_token: value => serialize_token(value),
refresh_token: value => serialize_token(value), refresh_token: value => serialize_token(value),
job: value => serialize_job(value),
req: value => serialize_req(value), req: value => serialize_req(value),
res: value => serialize_res(value), res: value => serialize_res(value),
} : { } : {
user: value => serialize_user_short(value), user: value => serialize_user_short(value),
access_token: value => serialize_token(value), access_token: value => serialize_token(value),
refresh_token: value => serialize_token(value), refresh_token: value => serialize_token(value),
job: value => serialize_job(value),
req: value => serialize_req(value), req: value => serialize_req(value),
res: value => serialize_res(value), res: value => serialize_res(value),
}, },

View File

@ -19,7 +19,13 @@ export class LibraryConsumer extends WorkerHost {
} }
async process(job: Job, token?: string): Promise<any> { async process(job: Job, token?: string): Promise<any> {
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; const series: CreateSeriesSubscriptionJobDto = job.data;
let context = this.provider.generateSearchContext(series.provider, series.title) as GoogleSearchContext; 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); .filter((_, index, arr) => index == 0 || arr[index - 1].result.volume != arr[index].result.volume);
job.updateProgress(25); 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; let counter = 0;
for (let book of books) { for (let book of books) {
try { try {
// Force the provider's series id to be set, so that we know which series this belongs.
book.result.providerSeriesId = series.providerSeriesId; book.result.providerSeriesId = series.providerSeriesId;
await this.library.addBook(book.result); await this.library.addBook(book.result);
} catch (err) { } 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; return null;
} }

View File

@ -79,3 +79,15 @@ export function serialize_res(value) {
} }
return value; return value;
} }
export function serialize_job(value) {
if (!value) {
return value;
}
return {
id: value.id,
name: value.name,
data: value.data,
}
}

View File

@ -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 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(); const customQueryParams = context.generateQueryParams();
console.log(defaultQueryParams, customQueryParams);
return await firstValueFrom( return await firstValueFrom(
this.http.get('https://www.googleapis.com/books/v1/volumes?' + defaultQueryParams + '&' + customQueryParams) this.http.get('https://www.googleapis.com/books/v1/volumes?' + defaultQueryParams + '&' + customQueryParams)