Se modifico management y models de tasks

This commit is contained in:
2025-10-08 21:15:39 -06:00
parent 113b25ee81
commit 3c9ef31b22
6 changed files with 164 additions and 1 deletions

View File

@@ -1,122 +0,0 @@
# Comando de Auditoría de Pedimentos
## 📝 Descripción
El comando `auditor` es una herramienta flexible para ejecutar tareas de auditoría y verificación de datos relacionados con pedimentos de una organización específica. Permite ejecutar todas las tareas o seleccionar específicamente cuáles ejecutar.
## 🔍 Tareas Disponibles
- **remesas**: Auditoría de remesas y procesamiento de COVEs
- **partidas**: Creación y validación de partidas faltantes
- **coves**: Auditoría de COVEs y su estado
- **acuse-cove**: Verificación de acuses de COVEs
- **edocs**: Auditoría de E-documents
- **acuses**: Verificación de acuses generales
## 💻 Uso
### Ver Tareas Disponibles
```bash
python manage.py auditor --list
```
### Ejecutar Todas las Tareas
```bash
python manage.py auditor <organizacion_id>
# o explícitamente
python manage.py auditor <organizacion_id> --tareas todas
```
### Ejecutar Tareas Específicas
```bash
# Ejecutar solo auditoría de remesas y COVEs
python manage.py auditor <organizacion_id> --tareas remesas coves
# Ejecutar partidas y acuses
python manage.py auditor <organizacion_id> --tareas partidas acuses
# Ejecutar E-documents y acuses de COVEs
python manage.py auditor <organizacion_id> --tareas edocs acuse-cove
```
### Ejecución en Docker
```bash
docker exec -it EFC_backend_dev python manage.py auditor <organizacion_id> [opciones]
```
### Ejemplos
```bash
# Listar tareas disponibles
python manage.py auditor --list
# Auditar todo para una organización
python manage.py auditor 9d705e97-d3f2-4b6c-8d92-9f1af2b2d4b4
# Auditar solo remesas y COVEs
python manage.py auditor 9d705e97-d3f2-4b6c-8d92-9f1af2b2d4b4 --tareas remesas coves
```
## 📊 Monitoreo y Resultados
### Indicadores de Estado
- ✓ Tarea iniciada correctamente
- ✗ Error en la ejecución
### Información Mostrada
- ID de la organización
- Número total de pedimentos
- Task ID de cada tarea iniciada
- Tiempo total de ejecución
- Estado de cada tarea
## ⚠️ Consideraciones Importantes
### Requisitos Previos
- Acceso al servidor/contenedor
- Permisos de Django
- ID válido de organización
- Celery en ejecución
### Recomendaciones
1. **Antes de Ejecutar**
- Realizar respaldo de datos
- Verificar disponibilidad de recursos
- Comprobar conexión con servicios
2. **Durante la Ejecución**
- Monitorear logs de Celery
- Verificar uso de recursos
- No interrumpir el proceso
3. **Después de la Ejecución**
- Verificar logs
- Validar resultados
- Documentar incidencias
## 🔧 Solución de Problemas
### Errores Comunes
1. **Organización no encontrada**
- Verificar ID de organización
- Confirmar existencia de pedimentos
2. **Tareas no inician**
- Verificar estado de Celery
- Comprobar permisos
- Revisar conexiones
3. **Errores de ejecución**
- Consultar logs detallados
- Verificar disponibilidad de servicios
- Comprobar estado de la base de datos
## 📝 Notas Adicionales
- Las tareas se ejecutan de forma asíncrona
- El tiempo mostrado corresponde solo a la inicialización
- Las tareas continúan en segundo plano
- Se recomienda ejecutar en horarios de bajo tráfico
## 🔍 Logs y Monitoreo
Para un seguimiento detallado, revisar:
- Logs de Celery
- Logs de Django
- Monitor de tareas de Celery

View File

@@ -38,6 +38,7 @@ from api.logger.mixins import LoggingMixin
from mixins.filtrado_organizacion import OrganizacionFiltradaMixin, ProcesosPorOrganizacionMixin
import requests
from .tasks.microservice_v2 import *
from .tasks.auditoria import crear_partidas_por_pedimento

View File

@@ -0,0 +1,24 @@
# Generated by Django 5.2.3 on 2025-10-09 03:06
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('customs', '0016_alter_pedimento_unique_together'),
('tasks', '0002_task_organizacion'),
]
operations = [
migrations.RemoveField(
model_name='task',
name='result',
),
migrations.AddField(
model_name='task',
name='servicio',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='customs.servicio'),
),
]

View File

@@ -8,4 +8,4 @@ class Task(models.Model):
timestamp = models.DateTimeField(auto_now_add=True)
message = models.TextField()
status = models.CharField(max_length=50)
result = models.TextField(null=True, blank=True)
servicio = models.ForeignKey('customs.Servicio', on_delete=models.CASCADE, null=True, blank=True)