jerkjs 2.5.8 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +162 -99
- package/README.md +113 -190
- package/RESULTADOS_WAF.md +63 -0
- package/doc-2.5/MANUAL_MODULOS_ADMIN.md +287 -0
- package/doc-2.5/QUEUE_CLI_MODULE_MANUAL.md +289 -0
- package/doc-2.5/QUEUE_SYSTEM_MANUAL.md +320 -0
- package/doc-2.5/ROUTE_CACHE_MODULE_MANUAL.md +205 -0
- package/doc-2.5/WAF_MODULE_MANUAL.md +229 -0
- package/index.js +12 -3
- package/jerk-admin-client/README.md +69 -0
- package/jerk-admin-client/package.json +23 -0
- package/jerk-admin-client.js +257 -0
- package/lib/admin/AdminExtension.js +74 -19
- package/lib/admin/modules/ControllerGeneratorModule.js +414 -0
- package/lib/admin/modules/QueueManagementModule.js +265 -0
- package/lib/admin/modules/RouteCacheModule.js +227 -0
- package/lib/admin/modules/RouteManagerModule.js +468 -0
- package/lib/admin/modules/STATS_MODULE_README.md +15 -0
- package/lib/admin/modules/ViewCacheStatsModule.js +92 -0
- package/lib/admin/modules/WAFModule.js +737 -0
- package/lib/core/server.js +72 -69
- package/lib/middleware/firewall.js +112 -17
- package/lib/mvc/viewEngine.js +69 -10
- package/lib/queue/GlobalQueueStorage.js +38 -0
- package/lib/queue/QueueSystem.js +451 -0
- package/lib/queue/admin_example.js +114 -0
- package/lib/queue/example.js +268 -0
- package/lib/queue/integration.js +109 -0
- package/lib/utils/globalViewCacheInfo.js +16 -0
- package/lib/utils/globalWAFStats.js +54 -0
- package/package.json +2 -2
- package/test-colors.js +46 -0
- package/test-help-alias.js +31 -0
- package/ESTADISTICAS_RENDIMIENTO.md +0 -106
- package/debug_hook.js +0 -11
- package/docs/CACHE_SYSTEM_MAP.md +0 -206
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Demostración del Módulo WAF - Resultados Finales
|
|
2
|
+
|
|
3
|
+
## ✅ Funcionalidades del Módulo WAF Verificadas
|
|
4
|
+
|
|
5
|
+
1. **Creación de Reglas**: ✅
|
|
6
|
+
- Comando `create-x-rule` funciona correctamente
|
|
7
|
+
- Proceso interactivo paso a paso para crear reglas
|
|
8
|
+
- Selecciona header, patrón, acción y razón
|
|
9
|
+
|
|
10
|
+
2. **Remoción de Reglas SIN Reiniciar**: ✅
|
|
11
|
+
- Comando `remove-x-rule` funciona correctamente
|
|
12
|
+
- Muestra lista de reglas disponibles para remover
|
|
13
|
+
- Remueve la regla seleccionada inmediatamente
|
|
14
|
+
- No requiere reiniciar el servidor
|
|
15
|
+
|
|
16
|
+
3. **Guardado de Reglas**: ✅
|
|
17
|
+
- Comando `save-rules` funciona correctamente
|
|
18
|
+
- Guarda reglas en archivos JSON en el directorio `waf-rules/`
|
|
19
|
+
- Muestra confirmación de guardado exitoso
|
|
20
|
+
|
|
21
|
+
4. **Carga de Reglas**: ✅
|
|
22
|
+
- Comando `load-rules` funciona correctamente
|
|
23
|
+
- Lista archivos disponibles para cargar
|
|
24
|
+
- Pregunta confirmación antes de reemplazar reglas
|
|
25
|
+
- Carga reglas desde archivo JSON exitosamente
|
|
26
|
+
|
|
27
|
+
5. **Visualización de Estadísticas**: ✅
|
|
28
|
+
- Comandos `waf-status`, `waf-stats`, `waf-blocked`, `waf-security` funcionan
|
|
29
|
+
- Muestra solicitudes procesadas con kilobytes
|
|
30
|
+
- Muestra respuestas enviadas con kilobytes
|
|
31
|
+
- Muestra accesos a rutas (input/output)
|
|
32
|
+
- Muestra endpoints y rutas más accedidas
|
|
33
|
+
|
|
34
|
+
## 🧪 Pruebas Realizadas
|
|
35
|
+
|
|
36
|
+
1. **Creación de regla**: Se creó regla para `X-Real-IP` con patrón `10.0.0.` y acción `block`
|
|
37
|
+
2. **Verificación**: Se confirmó que la regla estaba registrada
|
|
38
|
+
3. **Guardado**: Se guardó la regla en archivo JSON
|
|
39
|
+
4. **Remoción**: Se removió la regla sin reiniciar el servidor
|
|
40
|
+
5. **Verificación de remoción**: Se confirmó que la regla ya no estaba registrada
|
|
41
|
+
6. **Carga**: Se cargaron las reglas desde el archivo guardado
|
|
42
|
+
7. **Verificación de carga**: Se confirmó que la regla fue restaurada desde el archivo
|
|
43
|
+
|
|
44
|
+
## 📊 Resultados Finales
|
|
45
|
+
|
|
46
|
+
- **Cantidad de requests procesados mostrando kilobytes**: ✅ Funciona
|
|
47
|
+
- **Cantidad de responses enviadas mostrando kilobytes**: ✅ Funciona
|
|
48
|
+
- **Accesos a las rutas registradas (input y output)**: ✅ Funciona
|
|
49
|
+
- **Endpoints y rutas más accedidas**: ✅ Funciona
|
|
50
|
+
- **Remoción de reglas sin reiniciar**: ✅ Funciona
|
|
51
|
+
- **Guardado y carga de reglas**: ✅ Funciona
|
|
52
|
+
|
|
53
|
+
## 🚀 Comandos Disponibles
|
|
54
|
+
|
|
55
|
+
- `waf-status` / `waf-stats`: Muestra estadísticas generales
|
|
56
|
+
- `waf-blocked` / `waf-security`: Muestra estadísticas de seguridad
|
|
57
|
+
- `waf-x-headers`: Muestra reglas de headers X-
|
|
58
|
+
- `create-x-rule`: Crea nuevas reglas de headers X-
|
|
59
|
+
- `remove-x-rule`: Remueve reglas existentes
|
|
60
|
+
- `save-rules`: Guarda reglas a archivo
|
|
61
|
+
- `load-rules`: Carga reglas desde archivo
|
|
62
|
+
|
|
63
|
+
El módulo de gestión de rutas del WAF está completamente funcional y proporciona todas las funcionalidades solicitadas con un sistema robusto de estadísticas globales y persistencia de reglas.
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
# Manual de Uso: Módulos de Administración de JERK Framework
|
|
2
|
+
|
|
3
|
+
## Descripción General
|
|
4
|
+
|
|
5
|
+
Este manual describe el uso de los módulos de administración interactivos para crear controladores y gestionar rutas en JERK Framework.
|
|
6
|
+
|
|
7
|
+
## Módulo de Generación de Controladores
|
|
8
|
+
|
|
9
|
+
### Descripción
|
|
10
|
+
El módulo de generación de controladores permite crear nuevos controladores de manera interactiva con una interfaz paso a paso.
|
|
11
|
+
|
|
12
|
+
### Comandos Disponibles
|
|
13
|
+
- `generate-controller`
|
|
14
|
+
- `gen-ctrl`
|
|
15
|
+
- `new-ctrl`
|
|
16
|
+
|
|
17
|
+
### Cómo Usar el Módulo
|
|
18
|
+
|
|
19
|
+
1. **Iniciar el proceso**
|
|
20
|
+
```
|
|
21
|
+
> generate-controller
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
2. **Nombre del controlador**
|
|
25
|
+
- Ingresa el nombre base del controlador (sin la palabra "Controller")
|
|
26
|
+
- Ejemplo: "User", "Product", "Home"
|
|
27
|
+
|
|
28
|
+
3. **Selección de métodos**
|
|
29
|
+
- Selecciona los métodos que deseas incluir:
|
|
30
|
+
- 1. index - Método para mostrar lista de elementos
|
|
31
|
+
- 2. show - Método para mostrar un elemento específico
|
|
32
|
+
- 3. create - Método para crear un nuevo elemento
|
|
33
|
+
- 4. update - Método para actualizar un elemento
|
|
34
|
+
- 5. delete - Método para eliminar un elemento
|
|
35
|
+
- 6. All - Todos los métodos anteriores
|
|
36
|
+
- Opciones de entrada:
|
|
37
|
+
- Números separados por comas: "1,2,3"
|
|
38
|
+
- Nombres de métodos: "index,show,create"
|
|
39
|
+
- "All" para todos los métodos
|
|
40
|
+
|
|
41
|
+
4. **Ruta del archivo**
|
|
42
|
+
- Indica la ruta donde crear el archivo del controlador
|
|
43
|
+
- Deja vacío para usar "./controllers/" por defecto
|
|
44
|
+
- Ejemplo: "./controllers/", "./src/controllers/"
|
|
45
|
+
|
|
46
|
+
5. **Confirmación**
|
|
47
|
+
- Se mostrará una vista previa del código generado
|
|
48
|
+
- Confirma con "sí" para crear el archivo o "no" para cancelar
|
|
49
|
+
|
|
50
|
+
### Ejemplo Completo
|
|
51
|
+
```
|
|
52
|
+
> generate-controller
|
|
53
|
+
=== Generador de Controladores ===
|
|
54
|
+
Por favor, introduce el nombre del controlador (sin la palabra "Controller"):
|
|
55
|
+
> User
|
|
56
|
+
|
|
57
|
+
Selecciona los métodos que deseas incluir (separados por comas):
|
|
58
|
+
> 1,2,3
|
|
59
|
+
|
|
60
|
+
Indica la ruta donde deseas crear el archivo del controlador:
|
|
61
|
+
>
|
|
62
|
+
|
|
63
|
+
=== Vista Previa del Controlador ===
|
|
64
|
+
[... código del controlador ...]
|
|
65
|
+
¿Deseas crear este controlador? (sí/no):
|
|
66
|
+
> sí
|
|
67
|
+
|
|
68
|
+
✅ Controlador "UserController" creado exitosamente en: ./controllers/UserController.js
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Módulo de Gestión de Rutas
|
|
72
|
+
|
|
73
|
+
### Descripción
|
|
74
|
+
El módulo de gestión de rutas permite crear nuevas rutas, deshabilitar rutas existentes y ver rutas registradas o activas.
|
|
75
|
+
|
|
76
|
+
### Comandos Disponibles
|
|
77
|
+
- `manage-routes`
|
|
78
|
+
- `route-manager`
|
|
79
|
+
- `route-mgmt`
|
|
80
|
+
|
|
81
|
+
## Módulo de Cache de Rutas
|
|
82
|
+
|
|
83
|
+
### Descripción
|
|
84
|
+
El módulo de cache de rutas permite monitorear y gestionar el cache de rutas del sistema, incluyendo visualización de estadísticas, contenido del cache, y limpieza del cache.
|
|
85
|
+
|
|
86
|
+
### Comandos Disponibles
|
|
87
|
+
- `route-cache`
|
|
88
|
+
- `cache-stats`
|
|
89
|
+
- `cache-view`
|
|
90
|
+
- `cache-dynamic`
|
|
91
|
+
- `cache-static`
|
|
92
|
+
- `cache-clear`
|
|
93
|
+
|
|
94
|
+
### Cómo Usar el Módulo
|
|
95
|
+
|
|
96
|
+
1. **Ver estadísticas del cache**
|
|
97
|
+
```
|
|
98
|
+
> route-cache
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
2. **Ver contenido completo del cache**
|
|
102
|
+
```
|
|
103
|
+
> cache-view
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
3. **Ver solo rutas dinámicas (parametrizadas)**
|
|
107
|
+
```
|
|
108
|
+
> cache-dynamic
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
4. **Ver solo rutas estáticas (exactas)**
|
|
112
|
+
```
|
|
113
|
+
> cache-static
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
5. **Limpiar el cache de rutas**
|
|
117
|
+
```
|
|
118
|
+
> cache-clear
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Ejemplo de Uso
|
|
122
|
+
```
|
|
123
|
+
> route-cache
|
|
124
|
+
=== Estadísticas del Cache de Rutas ===
|
|
125
|
+
Rutas dinámicas (parametrizadas) en cache: 5
|
|
126
|
+
Rutas estáticas exactas en cache: 10
|
|
127
|
+
Tamaño total de índices: 15
|
|
128
|
+
Índices válidos: Sí
|
|
129
|
+
|
|
130
|
+
> cache-dynamic
|
|
131
|
+
=== Cache de Rutas Dinámicas (Parametrizadas) ===
|
|
132
|
+
1. Ruta: /users/:id
|
|
133
|
+
Regex: /^\/users\/([^\/]+?)$/
|
|
134
|
+
|
|
135
|
+
Total: 1 rutas dinámicas en cache.
|
|
136
|
+
|
|
137
|
+
> cache-clear
|
|
138
|
+
=== Limpieza del Cache de Rutas ===
|
|
139
|
+
Rutas dinámicas eliminadas: 5
|
|
140
|
+
Rutas estáticas eliminadas: 10
|
|
141
|
+
Cache de rutas limpiado exitosamente.
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Cómo Usar el Módulo
|
|
145
|
+
|
|
146
|
+
1. **Iniciar el proceso**
|
|
147
|
+
```
|
|
148
|
+
> route-mgmt
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
2. **Menú Principal**
|
|
152
|
+
El sistema mostrará las opciones disponibles:
|
|
153
|
+
- 1. Crear nueva ruta
|
|
154
|
+
- 2. Deshabilitar ruta existente
|
|
155
|
+
- 3. Ver rutas registradas
|
|
156
|
+
- 4. Ver rutas activas
|
|
157
|
+
|
|
158
|
+
### Opción 1: Crear Nueva Ruta
|
|
159
|
+
|
|
160
|
+
1. **Selecciona el método HTTP**
|
|
161
|
+
- 1. GET
|
|
162
|
+
- 2. POST
|
|
163
|
+
- 3. PUT
|
|
164
|
+
- 4. DELETE
|
|
165
|
+
- 5. PATCH
|
|
166
|
+
- 6. Otro
|
|
167
|
+
- O ingresa el método directamente (GET, POST, etc.)
|
|
168
|
+
|
|
169
|
+
2. **Introduce la ruta**
|
|
170
|
+
- Ejemplo: "/api/users", "/users/:id"
|
|
171
|
+
|
|
172
|
+
3. **Ruta al archivo del controlador**
|
|
173
|
+
- Ejemplo: "./controllers/UserController.js"
|
|
174
|
+
|
|
175
|
+
4. **Nombre del handler**
|
|
176
|
+
- Nombre del método en el controlador
|
|
177
|
+
- Ejemplo: "index", "show", "create"
|
|
178
|
+
|
|
179
|
+
5. **Confirmación**
|
|
180
|
+
- Se mostrará una vista previa de la entrada para routes.json
|
|
181
|
+
- Confirma con "sí" para crear la ruta o "no" para cancelar
|
|
182
|
+
|
|
183
|
+
### Opción 2: Deshabilitar Ruta Existente
|
|
184
|
+
|
|
185
|
+
1. **Selecciona la ruta**
|
|
186
|
+
- El sistema mostrará una lista numerada de rutas registradas
|
|
187
|
+
- Ingresa el número de la ruta que deseas deshabilitar
|
|
188
|
+
|
|
189
|
+
2. **Confirmación**
|
|
190
|
+
- Se mostrará la ruta seleccionada
|
|
191
|
+
- Confirma con "sí" para deshabilitar la ruta o "no" para cancelar
|
|
192
|
+
|
|
193
|
+
### Opción 3: Ver Rutas Registradas
|
|
194
|
+
|
|
195
|
+
- Muestra todas las rutas registradas en el sistema
|
|
196
|
+
- Formato: Número. Método HTTP Ruta
|
|
197
|
+
|
|
198
|
+
### Opción 4: Ver Rutas Activas
|
|
199
|
+
|
|
200
|
+
- Muestra las rutas que han recibido solicitudes recientemente
|
|
201
|
+
- Formato: Método HTTP Ruta - Fecha y hora de la última solicitud
|
|
202
|
+
|
|
203
|
+
### Ejemplo de Creación de Ruta
|
|
204
|
+
```
|
|
205
|
+
> route-mgmt
|
|
206
|
+
=== Gestión de Rutas ===
|
|
207
|
+
¿Qué deseas hacer?
|
|
208
|
+
1. Crear nueva ruta
|
|
209
|
+
2. Deshabilitar ruta existente
|
|
210
|
+
3. Ver rutas registradas
|
|
211
|
+
4. Ver rutas activas
|
|
212
|
+
> 1
|
|
213
|
+
|
|
214
|
+
=== Crear Nueva Ruta ===
|
|
215
|
+
Selecciona el método HTTP:
|
|
216
|
+
1. GET
|
|
217
|
+
2. POST
|
|
218
|
+
3. PUT
|
|
219
|
+
4. DELETE
|
|
220
|
+
5. PATCH
|
|
221
|
+
6. Otro
|
|
222
|
+
> GET
|
|
223
|
+
|
|
224
|
+
Método seleccionado: GET
|
|
225
|
+
Introduce la ruta (ej: /api/users, /users/:id):
|
|
226
|
+
> /api/demo
|
|
227
|
+
|
|
228
|
+
Ruta: /api/demo
|
|
229
|
+
Introduce la ruta al archivo del controlador (ej: ./controllers/UserController.js):
|
|
230
|
+
> ./controllers/DemoController.js
|
|
231
|
+
|
|
232
|
+
Introduce el nombre del handler (método del controlador):
|
|
233
|
+
> index
|
|
234
|
+
|
|
235
|
+
=== Vista Previa de la Ruta ===
|
|
236
|
+
Método: GET
|
|
237
|
+
Ruta: /api/demo
|
|
238
|
+
Controlador: ./controllers/DemoController.js
|
|
239
|
+
Handler: index
|
|
240
|
+
|
|
241
|
+
Entrada para routes.json:
|
|
242
|
+
{
|
|
243
|
+
"path": "/api/demo",
|
|
244
|
+
"method": "GET",
|
|
245
|
+
"controller": "./controllers/DemoController.js",
|
|
246
|
+
"handler": "index",
|
|
247
|
+
"contentType": "application/json"
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
¿Deseas crear esta ruta? (sí/no):
|
|
251
|
+
> sí
|
|
252
|
+
|
|
253
|
+
✅ Ruta "GET /api/demo" creada exitosamente.
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## Consejos de Uso
|
|
257
|
+
|
|
258
|
+
### Para Controladores
|
|
259
|
+
- Usa nombres descriptivos para tus controladores
|
|
260
|
+
- Considera qué métodos necesitas antes de crear el controlador
|
|
261
|
+
- Elige rutas de archivo que sigan la estructura de tu proyecto
|
|
262
|
+
|
|
263
|
+
### Para Rutas
|
|
264
|
+
- Asegúrate de que el controlador y el handler existan antes de crear la ruta
|
|
265
|
+
- Usa rutas RESTful cuando sea posible
|
|
266
|
+
- Considera el método HTTP adecuado para cada operación
|
|
267
|
+
|
|
268
|
+
## Errores Comunes y Soluciones
|
|
269
|
+
|
|
270
|
+
### Controlador
|
|
271
|
+
- **Nombre inválido**: Asegúrate de usar solo letras, números y guiones bajos
|
|
272
|
+
- **Ruta de archivo no encontrada**: Verifica que la ruta sea correcta
|
|
273
|
+
|
|
274
|
+
### Rutas
|
|
275
|
+
- **Ruta duplicada**: El sistema no impide rutas duplicadas
|
|
276
|
+
- **Controlador o handler no encontrado**: Verifica que existan antes de crear la ruta
|
|
277
|
+
- **Método HTTP inválido**: Usa métodos estándar (GET, POST, PUT, DELETE, PATCH)
|
|
278
|
+
|
|
279
|
+
## Comandos Generales
|
|
280
|
+
|
|
281
|
+
- `help`: Muestra la ayuda general
|
|
282
|
+
- `quit` o `exit`: Cierra la conexión
|
|
283
|
+
- `cancel`: Cancela el proceso interactivo actual
|
|
284
|
+
|
|
285
|
+
## Soporte
|
|
286
|
+
|
|
287
|
+
Para soporte adicional, consulta la documentación del framework o contacta al equipo de desarrollo.
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# Manual del Módulo CLI de Gestión de Colas para JERK Framework
|
|
2
|
+
|
|
3
|
+
## Tabla de Contenidos
|
|
4
|
+
1. [Introducción](#introducción)
|
|
5
|
+
2. [Comandos Disponibles](#comandos-disponibles)
|
|
6
|
+
3. [Uso Básico](#uso-básico)
|
|
7
|
+
4. [Uso Avanzado](#uso-avanzado)
|
|
8
|
+
5. [Ejemplos de Uso](#ejemplos-de-uso)
|
|
9
|
+
6. [Solución de Problemas](#solución-de-problemas)
|
|
10
|
+
|
|
11
|
+
## Introducción
|
|
12
|
+
|
|
13
|
+
El módulo de Gestión de Colas es una extensión del sistema de administración CLI de JERK Framework que permite monitorear y gestionar las colas de tareas del sistema. Proporciona comandos para ver el estado de las colas, pausarlas, reanudarlas, limpiarlas y gestionar tareas fallidas.
|
|
14
|
+
|
|
15
|
+
## Comandos Disponibles
|
|
16
|
+
|
|
17
|
+
### Comandos Generales de Colas
|
|
18
|
+
- `queues`: Muestra el estado de todas las colas del sistema
|
|
19
|
+
- `queue-info`: Muestra información detallada de una cola específica
|
|
20
|
+
- `queue-pause`: Pausa una cola específica
|
|
21
|
+
- `queue-resume`: Reanuda una cola específica
|
|
22
|
+
- `queue-clear`: Limpia las tareas pendientes de una cola específica
|
|
23
|
+
- `queue-retry-failed`: Reintenta las tareas fallidas de una cola específica
|
|
24
|
+
|
|
25
|
+
## Uso Básico
|
|
26
|
+
|
|
27
|
+
### Conectar al Sistema de Administración
|
|
28
|
+
|
|
29
|
+
Para acceder al módulo de gestión de colas, primero debes conectarte al sistema de administración:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
telnet localhost 9999
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
O alternativamente:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
nc localhost 9999
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Ver el estado de todas las colas
|
|
42
|
+
|
|
43
|
+
Comando: `queues`
|
|
44
|
+
|
|
45
|
+
Este comando muestra el estado de todas las colas registradas en el sistema:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
> queues
|
|
49
|
+
|
|
50
|
+
=== Colas del Sistema ===
|
|
51
|
+
imagenes:
|
|
52
|
+
Concurrencia: 3/3
|
|
53
|
+
Tareas pendientes: 0
|
|
54
|
+
Tareas en proceso: 0
|
|
55
|
+
Tareas fallidas: 0
|
|
56
|
+
Estado: INACTIVO
|
|
57
|
+
Reintentos: 2
|
|
58
|
+
Retraso de reintento: 1000ms
|
|
59
|
+
|
|
60
|
+
correos:
|
|
61
|
+
Concurrencia: 2/2
|
|
62
|
+
Tareas pendientes: 1
|
|
63
|
+
Tareas en proceso: 1
|
|
64
|
+
Tareas fallidas: 0
|
|
65
|
+
Estado: PROCESANDO
|
|
66
|
+
Reintentos: 3
|
|
67
|
+
Retraso de reintento: 2000ms
|
|
68
|
+
|
|
69
|
+
pagos:
|
|
70
|
+
Concurrencia: 1/1
|
|
71
|
+
Tareas pendientes: 0
|
|
72
|
+
Tareas en proceso: 0
|
|
73
|
+
Tareas fallidas: 2
|
|
74
|
+
Estado: INACTIVO
|
|
75
|
+
Reintentos: 5
|
|
76
|
+
Retraso de reintento: 3000ms
|
|
77
|
+
|
|
78
|
+
backups:
|
|
79
|
+
Concurrencia: 1/1
|
|
80
|
+
Tareas pendientes: 0
|
|
81
|
+
Tareas en proceso: 0
|
|
82
|
+
Tareas fallidas: 0
|
|
83
|
+
Estado: INACTIVO
|
|
84
|
+
Reintentos: 3
|
|
85
|
+
Retraso de reintento: 5000ms
|
|
86
|
+
|
|
87
|
+
>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Ver información detallada de una cola específica
|
|
91
|
+
|
|
92
|
+
Comando: `queue-info`
|
|
93
|
+
|
|
94
|
+
Este comando solicita el nombre de una cola y muestra información detallada:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
> queue-info
|
|
98
|
+
|
|
99
|
+
Introduce el nombre de la cola:
|
|
100
|
+
> pagos
|
|
101
|
+
|
|
102
|
+
=== Información de la Cola: pagos ===
|
|
103
|
+
Concurrencia: 1/1
|
|
104
|
+
Tareas pendientes: 0
|
|
105
|
+
Tareas en proceso: 0
|
|
106
|
+
Tareas fallidas: 2
|
|
107
|
+
Estado: INACTIVO
|
|
108
|
+
Reintentos: 5
|
|
109
|
+
Retraso de reintento: 3000ms
|
|
110
|
+
Total de workers: 0
|
|
111
|
+
|
|
112
|
+
>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Uso Avanzado
|
|
116
|
+
|
|
117
|
+
### Pausar una cola
|
|
118
|
+
|
|
119
|
+
Comando: `queue-pause`
|
|
120
|
+
|
|
121
|
+
Pausa temporalmente el procesamiento de tareas en una cola específica:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
> queue-pause
|
|
125
|
+
|
|
126
|
+
Introduce el nombre de la cola:
|
|
127
|
+
> correos
|
|
128
|
+
|
|
129
|
+
✅ Cola 'correos' pausada exitosamente.
|
|
130
|
+
|
|
131
|
+
>
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Cuando una cola está pausada, no procesará nuevas tareas, pero las tareas que ya estaban en proceso se completarán normalmente.
|
|
135
|
+
|
|
136
|
+
### Reanudar una cola
|
|
137
|
+
|
|
138
|
+
Comando: `queue-resume`
|
|
139
|
+
|
|
140
|
+
Reanuda el procesamiento de tareas en una cola específica:
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
> queue-resume
|
|
144
|
+
|
|
145
|
+
Introduce el nombre de la cola:
|
|
146
|
+
> correos
|
|
147
|
+
|
|
148
|
+
✅ Cola 'correos' reanudada exitosamente.
|
|
149
|
+
|
|
150
|
+
>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Limpiar una cola
|
|
154
|
+
|
|
155
|
+
Comando: `queue-clear`
|
|
156
|
+
|
|
157
|
+
Elimina todas las tareas pendientes de una cola específica (no afecta a las tareas que ya están en proceso):
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
> queue-clear
|
|
161
|
+
|
|
162
|
+
Introduce el nombre de la cola:
|
|
163
|
+
> imagenes
|
|
164
|
+
|
|
165
|
+
✅ Cola 'imagenes' limpiada exitosamente (tareas pendientes eliminadas).
|
|
166
|
+
|
|
167
|
+
>
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Reintentar tareas fallidas
|
|
171
|
+
|
|
172
|
+
Comando: `queue-retry-failed`
|
|
173
|
+
|
|
174
|
+
Reintenta todas las tareas que han fallado definitivamente en una cola específica:
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
> queue-retry-failed
|
|
178
|
+
|
|
179
|
+
Introduce el nombre de la cola:
|
|
180
|
+
> pagos
|
|
181
|
+
|
|
182
|
+
✅ Reintento de tareas fallidas iniciado para la cola 'pagos'.
|
|
183
|
+
|
|
184
|
+
>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Ejemplos de Uso
|
|
188
|
+
|
|
189
|
+
### Ejemplo 1: Monitoreo de colas
|
|
190
|
+
|
|
191
|
+
Para monitorear constantemente el estado de las colas, puedes usar el comando `queues` repetidamente:
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
> queues
|
|
195
|
+
imagenes: Pendientes=0, En proceso=2, Fallidas=0, Pausada=false
|
|
196
|
+
correos: Pendientes=5, En proceso=1, Fallidas=0, Pausada=false
|
|
197
|
+
pagos: Pendientes=0, En proceso=0, Fallidas=1, Pausada=false
|
|
198
|
+
backups: Pendientes=0, En proceso=0, Fallidas=0, Pausada=false
|
|
199
|
+
>
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### Ejemplo 2: Gestión de alta carga
|
|
203
|
+
|
|
204
|
+
Si una cola está recibiendo demasiadas tareas y necesitas detener temporalmente el procesamiento:
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
> queue-pause
|
|
208
|
+
Introduce el nombre de la cola:
|
|
209
|
+
> correos
|
|
210
|
+
✅ Cola 'correos' pausada exitosamente.
|
|
211
|
+
|
|
212
|
+
> queues
|
|
213
|
+
correos: Pendientes=50, En proceso=0, Fallidas=0, Pausada=true
|
|
214
|
+
>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Luego, cuando la carga disminuya, puedes reanudar:
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
> queue-resume
|
|
221
|
+
Introduce el nombre de la cola:
|
|
222
|
+
> correos
|
|
223
|
+
✅ Cola 'correos' reanudada exitosamente.
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Ejemplo 3: Manejo de tareas fallidas
|
|
227
|
+
|
|
228
|
+
Si una cola tiene tareas fallidas que deseas reintentar:
|
|
229
|
+
|
|
230
|
+
```
|
|
231
|
+
> queues
|
|
232
|
+
pagos: Pendientes=0, En proceso=0, Fallidas=3, Pausada=false
|
|
233
|
+
|
|
234
|
+
> queue-retry-failed
|
|
235
|
+
Introduce el nombre de la cola:
|
|
236
|
+
> pagos
|
|
237
|
+
✅ Reintento de tareas fallidas iniciado para la cola 'pagos'.
|
|
238
|
+
|
|
239
|
+
> queues
|
|
240
|
+
pagos: Pendientes=3, En proceso=0, Fallidas=0, Pausada=false
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
## Solución de Problemas
|
|
244
|
+
|
|
245
|
+
### Problema: Comando no reconocido
|
|
246
|
+
|
|
247
|
+
**Síntoma**: El sistema responde con "Comando desconocido para el módulo de gestión de colas"
|
|
248
|
+
|
|
249
|
+
**Solución**: Verifica que estás usando uno de los comandos válidos: `queues`, `queue-info`, `queue-pause`, `queue-resume`, `queue-clear`, `queue-retry-failed`
|
|
250
|
+
|
|
251
|
+
### Problema: Cola no encontrada
|
|
252
|
+
|
|
253
|
+
**Síntoma**: El sistema responde con "❌ Cola 'nombre' no encontrada."
|
|
254
|
+
|
|
255
|
+
**Solución**: Verifica que el nombre de la cola es correcto. Puedes usar el comando `queues` para ver la lista de colas disponibles.
|
|
256
|
+
|
|
257
|
+
### Problema: Cola no responde
|
|
258
|
+
|
|
259
|
+
**Síntoma**: Las tareas no se procesan aunque la cola esté activa
|
|
260
|
+
|
|
261
|
+
**Solución**:
|
|
262
|
+
1. Verifica el estado con `queues`
|
|
263
|
+
2. Comprueba si la cola está pausada
|
|
264
|
+
3. Verifica que el sistema de colas esté iniciado en la aplicación
|
|
265
|
+
4. Revisa los logs de la aplicación para posibles errores
|
|
266
|
+
|
|
267
|
+
### Problema: Tareas acumulándose
|
|
268
|
+
|
|
269
|
+
**Síntoma**: La cola tiene muchas tareas pendientes que no se procesan
|
|
270
|
+
|
|
271
|
+
**Soluciones posibles**:
|
|
272
|
+
1. Aumenta la concurrencia de la cola en la configuración de la aplicación
|
|
273
|
+
2. Pausa temporalmente la cola si hay sobrecarga: `queue-pause`
|
|
274
|
+
3. Verifica que las tareas no estén fallando continuamente
|
|
275
|
+
|
|
276
|
+
## Compatibilidad
|
|
277
|
+
|
|
278
|
+
- **Versión mínima del framework**: JERK 2.6.0
|
|
279
|
+
- **Puerto de administración**: Por defecto 9999 (configurable)
|
|
280
|
+
- **Acceso**: Solo desde localhost por razones de seguridad
|
|
281
|
+
- **Protocolo**: Conexión TCP con interfaz de línea de comandos
|
|
282
|
+
|
|
283
|
+
## Autor
|
|
284
|
+
|
|
285
|
+
JERK Framework Team
|
|
286
|
+
|
|
287
|
+
## Versión
|
|
288
|
+
|
|
289
|
+
v2.6.0
|