first commit
This commit is contained in:
commit
c9fb67e751
423 files changed
+53287
No files matched your search
@@ -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 };
|
||||
@@ -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');
|
||||
Reference in new issue
Block a user