microservicios
This commit is contained in:
52
api/customs/management/commands/README_microservicios.md
Normal file
52
api/customs/management/commands/README_microservicios.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# Comando de Microservicios
|
||||
|
||||
Este comando permite disparar tareas de procesamiento masivo por organización o por pedimento en el sistema EFC.
|
||||
|
||||
## Uso básico
|
||||
|
||||
```bash
|
||||
python manage.py microservicios [--organizacion_id=<id>] [--procesamiento=<tipo>] [--todos]
|
||||
```
|
||||
|
||||
## Opciones
|
||||
|
||||
- `--organizacion_id <id>`: Ejecuta los procesamientos solo para la organización indicada. Si se omite, se procesan todas las organizaciones.
|
||||
- `--procesamiento <tipo>`: Ejecuta solo el tipo de procesamiento indicado para la organización. Si se omite, se ejecutan todos los procesamientos.
|
||||
- `--todos`: Ejecuta todos los procesos para todas las organizaciones.
|
||||
|
||||
## Tipos de procesamiento disponibles
|
||||
|
||||
- `coves`: Procesa COVEs por organización/pedimento
|
||||
- `edocs`: Procesa E-Documents por organización/pedimento
|
||||
- `acuses`: Procesa acuses por organización/pedimento
|
||||
- `acuse_coves`: Procesa acuse de COVEs por organización/pedimento
|
||||
- `partidas`: Procesa partidas por organización/pedimento
|
||||
- `pedimentos_completos`: Procesa pedimentos completos por organización/pedimento
|
||||
- `remesas`: Procesa remesas por organización/pedimento
|
||||
|
||||
## Ejemplos
|
||||
|
||||
### Procesar todos los tipos para todas las organizaciones
|
||||
```bash
|
||||
python manage.py microservicios --todos
|
||||
```
|
||||
|
||||
### Procesar solo COVEs para una organización
|
||||
```bash
|
||||
python manage.py microservicios --organizacion_id=ID_ORG --procesamiento=coves
|
||||
```
|
||||
|
||||
### Procesar todos los tipos para una organización
|
||||
```bash
|
||||
python manage.py microservicios --organizacion_id=ID_ORG
|
||||
```
|
||||
|
||||
### Procesar todos los tipos para un pedimento específico
|
||||
```bash
|
||||
python manage.py microservicios --pedimento_id=ID_PEDIMENTO
|
||||
```
|
||||
|
||||
## Notas
|
||||
- El comando dispara las tareas de Celery de forma asíncrona.
|
||||
- Revisa los logs y el estado de las tareas en el panel de administración de Celery o en los logs del sistema.
|
||||
- Si agregas nuevos tipos de procesamiento, actualiza la función `ejecutar_procesamiento_por_organizacion` en `microservice_v2.py`.
|
||||
@@ -1,6 +1,5 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from api.customs.tasks.auditoria import (
|
||||
auditar_procesamiento_remesas,
|
||||
auditar_coves,
|
||||
auditar_acuse_cove,
|
||||
auditar_edocuments,
|
||||
|
||||
44
api/customs/management/commands/microservicios.py
Normal file
44
api/customs/management/commands/microservicios.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from api.customs.models import Organizacion
|
||||
from api.customs.tasks import microservice_v2
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Ejecuta tareas de microservicio por organización y procesamiento.'
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument(
|
||||
'--organizacion_id',
|
||||
type=str,
|
||||
help='ID de la organización a procesar (opcional, si no se envía se procesan todas)'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--procesamiento',
|
||||
type=str,
|
||||
help='Tipo de procesamiento a ejecutar (opcional, si no se envía se ejecutan todos)'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--todos',
|
||||
type=bool,
|
||||
help='Ejecutar todos los procesos (opcional)'
|
||||
)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
|
||||
todos = options.get('todos', False)
|
||||
organizacion_id = options.get('organizacion_id')
|
||||
procesamiento = options.get('procesamiento')
|
||||
if todos:
|
||||
organizaciones = Organizacion.objects.all()
|
||||
for org in organizaciones:
|
||||
microservice_v2.ejecutar_todos_por_organizacion(org.id)
|
||||
self.stdout.write(self.style.SUCCESS('Se ejecutaron todos los procesos para todas las organizaciones.'))
|
||||
return
|
||||
|
||||
if organizacion_id:
|
||||
if procesamiento:
|
||||
microservice_v2.ejecutar_procesamiento_por_organizacion(organizacion_id, procesamiento)
|
||||
self.stdout.write(self.style.SUCCESS(f'Se ejecutó el procesamiento {procesamiento} para la organización {organizacion_id}.'))
|
||||
else:
|
||||
microservice_v2.ejecutar_todos_por_organizacion(organizacion_id)
|
||||
self.stdout.write(self.style.SUCCESS(f'Se ejecutaron todos los procesos para la organización {organizacion_id}.'))
|
||||
|
||||
Reference in New Issue
Block a user