diff --git a/.gitignore b/.gitignore index 2e65144..32dae03 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ node_modules/ npm-debug.log yarn-error.log -.env # Logs logs/ @@ -27,9 +26,7 @@ build/Release/ .yarn-integrity # dotenv environment variables file -.env -.env.test -.env.production +.env* # Next.js build output .next/ @@ -66,6 +63,4 @@ $RECYCLE.BIN/ *.swp *~ -# Docker files -docker-compose.override.yml zplData_*.txt diff --git a/README.md b/README.md index 943c4d2..3b7d7a0 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ Este proyecto es una aplicación backend que utiliza Node.js, Docker, MariaDB y ```env DB_HOST=mariadb + DB_PORT=3306 DB_USER=user DB_PASSWORD=password DB_NAME=database diff --git a/worker/worker.js b/worker/worker.js index 11a26c8..ab7c90d 100644 --- a/worker/worker.js +++ b/worker/worker.js @@ -39,25 +39,18 @@ async function getConnectionWithRetries(retries = 3, delay = 5000) { } //Función para enviar ZPL a la impresora con TCP socket y reintentos -async function sendZPL(zplContent, ipAddress, retries = 2, delay = 3000) { +async function sendZPL(zplContent, ipAddress, retries = 3, delay = 2000) { const port = 9100; // puerto que se utiliza para el envio de zpl junto con el ipAddress for (let attempt = 0; attempt < retries; attempt++) { try { const result = await new Promise((resolve, reject) => { const client = new net.Socket(); - let dataReceived = false; // Bandera para rastrear si se recibió respuesta client.connect(port, ipAddress, () => { - logger.info(`Conexión establecida con la impresora en el intento ${attempt + 1}`); - client.write(zplContent); - }); - - client.on('data', data => { - dataReceived = true; // Se ha recibido respuesta - logger.info(`Respuesta de la impresora: ${data.toString()}`); - client.destroy(); - resolve('success'); + client.write(zplContent, () => { + resolve('success'); + }); }); client.on('error', error => { @@ -68,19 +61,14 @@ async function sendZPL(zplContent, ipAddress, retries = 2, delay = 3000) { client.on('close', () => { logger.info('Conexión cerrada'); - // Si no se recibió ningún dato, considerarlo como cerrado exitosamente - if (dataReceived) - resolve('success'); // Considerar éxito si la impresora cerró la conexión sin error - else - resolve('closed'); + resolve('closed'); }); }); if (result === 'success') return 'success'; else if (result === 'closed') { - if(retries >= attempt) - return 'error'; + if (retries >= attempt) return 'error'; continue; // Reintentar si la conexión se cerró sin error } @@ -159,7 +147,7 @@ async function processRecord(record) { try { await connection.beginTransaction(); - logger.info(`Procesando expeditionFk=${record.expeditionFk} en worker`); + logger.info(`Procesando expedición = ${record.expeditionFk}`); const zplData = generateZPL(record, label); const filePath = path.join(__dirname, `zplData_${record.expeditionFk}.txt`); @@ -173,7 +161,6 @@ async function processRecord(record) { const sendResult = await sendZPL(zplContent, ipAddress); if (sendResult === 'success') { - logger.info(`Etiqueta impresa correctamente para expeditionFk=${record.expeditionFk}`); await connection.query( 'UPDATE expedition_PrintOut SET isPrinted = 1 WHERE expeditionFk = ?', [record.expeditionFk] @@ -186,7 +173,6 @@ async function processRecord(record) { [record.expeditionFk] ); } - parentPort.postMessage('done'); await connection.commit(); } catch (error) {