El gasto repetido puede nacer dentro del sitio
Cuando una tarea de WordPress ejecuta trabajo de inteligencia artificial (IA) varias veces, el patrón puede parecer automatización hostil: llamadas iguales, intervalos regulares y ausencia de una persona en pantalla. Sin embargo, si el bloqueo de WP-Cron caduca antes de que termine la tarea, una segunda ejecución puede empezar sobre la primera. Bloquear visitantes no corrige esa concurrencia interna.
Por qué Human, Bot y Unknown no resuelven este caso
La explicación para finanzas debe separar observación y clasificación. El hecho es que hubo tres inicios con el origen inventory-sync; la hipótesis es que el TTL del bloqueo permitió solapamiento. Human, Bot y Unknown describen tráfico observado por la protección, pero no son etiquetas apropiadas para una tarea propia identificada por hook y contexto de segundo plano.
Demuestre la incompatibilidad entre duración y bloqueo
Extraiga la duración de varias ejecuciones, no solo la peor. Si el percentil 95 es de once minutos y el bloqueo vence a los cinco, existe una ventana habitual de seis minutos en la que otra ejecución puede adquirirlo. Muestre las marcas de inicio y fin de los tres procesos, el mismo identificador de lote y los identificadores distintos enviados al proveedor.
Compruebe también por qué la tarea dura once minutos. Aumentar el TTL evita solapamientos, pero puede ocultar un lote atascado. Registre número de elementos, velocidad, errores y reintentos. La causa inmediata puede ser un bloqueo corto; la corrección sostenible incluye un propietario de ejecución y una forma segura de continuar después de un fallo.
| Hecho confirmado | Dato | Qué permite concluir | Qué no permite concluir |
|---|---|---|---|
| Duración p95 | 11 min | La tarea suele superar el bloqueo | Que toda ejecución tarde 11 min |
| TTL del bloqueo | 5 min | Puede liberarse mientras sigue el trabajo | Que WP-Cron esté defectuoso |
| Inicios solapados | 3 | Hubo concurrencia interna | Que sean tres visitantes maliciosos |
| Origen | inventory-sync | La llamada nació en el inventario | Que cualquier bot sea inocuo |
| Contexto | segundo plano | Human/Bot/Unknown no decide este caso | Que no exista coste real |
Presente una causa limitada y falsable
La frase útil es: «Las tres llamadas proceden del mismo lote interno; dos comenzaron después de vencer un bloqueo de cinco minutos mientras la ejecución anterior seguía activa». Añada los ID y tiempos. Evite «todo fue Cron» si aún hay solicitudes sin correlación, y evite «fue un bot» si no existe una ruta de entrada externa.
Incluya una prueba que podría refutar la explicación: tras extender el bloqueo y añadir propiedad atómica del lote, el mismo volumen debe producir un solo inicio y un único conjunto de llamadas remotas. Si persisten duplicados, reabra las hipótesis de reintento HTTP, doble programación o más de un servidor con un almacén de bloqueos no compartido.
Apruebe controles que actúen en la capa correcta
La propuesta puede combinar un bloqueo superior al percentil alto, heartbeat para tareas largas, identificador único del lote y registro de elementos ya procesados. Defina qué ocurre si el worker muere: otro proceso debe recuperar trabajo pendiente sin repetir todo lo completado. El control de gasto queda como barrera, no como mecanismo primario de coordinación.
Pida aprobación para un cambio acotado, una ventana de prueba y una condición de reversión. No solicite bloquear tráfico de clientes ni reclasificar Unknown cuando la evidencia apunta al scheduler. Esta correspondencia entre causa y control es lo que hace defendible el gasto de ingeniería ante finanzas.
Cierre la nota con impacto y seguimiento
Cuantifique llamadas duplicadas, tokens y coste, pero separe importe estimado de factura final. Indique si hubo datos incorrectos, retraso de inventario o solo consumo adicional. Asigne responsable y fecha: por ejemplo, prueba controlada mañana, observación durante siete ejecuciones y conciliación con el proveedor al cierre del periodo.
La nota de una página debe poder leerse sin logs, mientras el anexo conserva la evidencia técnica. Enlace desde ella al blog para ampliar criterios de diagnóstico, pero no convierta la comunicación en publicidad. Una explicación financiera útil termina con una decisión concreta: corregir la concurrencia interna y no cerrar una ruta de clientes que no causó el incidente.
Use la Nota de causa y control en una página de «Cómo explicar a finanzas un solapamiento de WP-Cron sin atribuirlo a bots» en una primera instalación real. Descargue AI Cost Circuit Breaker gratis, empiece en Monitoring y active el bloqueo solo después de verificar señales y reversión.