Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 2x 1x 1x 2x 2x 2x 1x 1x 2x 2x 2x 2x 2x 2x 2x 1x 1x 1x 1x 1x 1x 2x 1x | import { ConsumeMessage } from 'amqplib';
import { Fibonacci } from './fibonacci.js';
import { Logger } from '../app/utils/logger.js';
import { IJobHandler } from '../app/types/IJobHandler.js';
import { TicketData } from '../app/types/ITicketData.js';
import { RequestService } from '../app/service/serviceFactory.js';
export default class JobHandler implements IJobHandler {
private readonly fibonacci: Fibonacci;
private readonly requestService: RequestService;
constructor(fibonacci: Fibonacci, requestService: RequestService) {
this.fibonacci = fibonacci;
this.requestService = requestService;
}
public async handleMessage(msg: ConsumeMessage) {
try {
Logger.log('message retrieved:', msg.content.toString());
const { ticket, inputNumber } = JSON.parse(msg.content.toString()) as TicketData;
Logger.log('starting calculate Fibonacci for:', inputNumber);
const result = await this.fibonacci.getValueFor(inputNumber);
Logger.log('finished calculate Fibonacci for:', inputNumber);
await this.requestService.updateRequestWithData(ticket, { inputNumber, result: result.toString() });
Logger.log('updated result for request ticket:', ticket);
} catch (err: unknown) {
Logger.error(err);
}
}
}
|