first commit

This commit is contained in:
rodrigo committed 2025-04-10 23:07:21 -03:00
commit c9fb67e751
423 files changed
+53287

No files matched your search

+55
View File
@@ -0,0 +1,55 @@
import { Queue, Worker } from 'bullmq';
import { ProvaService } from '../services/ProvaService';
import { prisma } from '../config/database';
const provaQueue = new Queue('provas', {
connection: {
host: process.env.REDIS_HOST || 'localhost',
port: Number(process.env.REDIS_PORT) || 6379
}
});
const worker = new Worker('provas', async (job) => {
const { fileData, metadata } = job.data;
const provaService = new ProvaService();
try {
// Atualizar status para PROCESSANDO
await prisma.prova.update({
where: { id: job.data.provaId },
data: { status: 'PROCESSANDO' }
});
// Processar o arquivo
const result = await provaService.processFile(
Buffer.from(fileData),
metadata
);
// Atualizar prova com resultado
await prisma.prova.update({
where: { id: job.data.provaId },
data: {
status: 'CONCLUIDO',
...result
}
});
} catch (error) {
console.error('Erro no processamento:', error);
await prisma.prova.update({
where: { id: job.data.provaId },
data: {
status: 'ERRO',
error: error.message
}
});
}
}, {
connection: {
host: process.env.REDIS_HOST || 'localhost',
port: Number(process.env.REDIS_PORT) || 6379
}
});
export { provaQueue, worker };
+11
View File
@@ -0,0 +1,11 @@
import { worker } from './ProvaWorker';
worker.on('completed', (job) => {
console.log(`Prova ${job.data.provaId} processada com sucesso`);
});
worker.on('failed', (job, error) => {
console.error(`Erro ao processar prova ${job.data.provaId}:`, error);
});
console.log('Worker de processamento de provas iniciado');