Documentación · Resolución de problemas
Errores de Cron
Este documento cubre los problemas relacionados con la automatización de las importaciones programadas, incluidos los fallos de WP-Cron, los problemas de configuración del cron del servidor y los errores del procesador de la cola de imágenes.
Cuándo utilizar este documento
Lea este documento cuando:
- Las importaciones automáticas no se estén ejecutando según la programación configurada.
- La hora de la última ejecución de importación mostrada en el panel de administración no avance.
- El registro del plugin no muestre actividad de importación a pesar de que la automatización está activada.
- El endpoint REST del cron devuelva errores o no active las importaciones.
- El procesador de la cola de imágenes no esté procesando las imágenes en cola.
Descripción general
El plugin admite dos modos de automatización de importaciones:
- Modo WP-Cron (por defecto): las importaciones se activan mediante el sistema de pseudo-cron integrado de WordPress (
wp-cron.php). WP-Cron se ejecuta cuando se carga una página de WordPress; en sitios con poco tráfico, es posible que no se ejecute de forma fiable. - Modo cron del servidor: una tarea cron real del sistema operativo llama a
wp-cron.phpo al endpoint REST dedicado del plugin a un intervalo fijo. Este método es más fiable y se recomienda para sitios de producción.
Ambos modos utilizan el mismo ejecutor de importación compartido (Scheduler::run_import()). El resultado es idéntico independientemente del activador que se utilice.
Opciones de programación disponibles
Cuando la automatización de WP-Cron está activada, están disponibles las siguientes programaciones:
| Clave de programación | Intervalo |
|---|---|
hourly | Cada 60 minutos |
as24ci_every_6_hours | Cada 6 horas |
twicedaily | Dos veces al día |
daily | Una vez al día |
as24ci_custom | Intervalo personalizado (mínimo 15 minutos, configurable) |
Para las programaciones daily y twicedaily, se puede configurar una hora de inicio (HH:MM, formato de 24 horas, en la zona horaria del sitio de WordPress). La hora de inicio predeterminada es las 06:00.
Endpoint REST del cron
El plugin registra un endpoint REST al que puede llamar un programador externo:
GET /wp-json/as24ci/v1/cron-import
Se requiere autenticación. El método preferido es:
Authorization: Bearer YOUR_TOKEN
El token también se puede pasar como un parámetro de consulta (?token=YOUR_TOKEN), aunque se recomienda usar la cabecera para evitar que el token aparezca en los registros de acceso del servidor.
El token se genera automáticamente y es visible en la pestaña de ajustes Importación y límites del plugin. Puede regenerarlo desde esa misma pantalla.
Procesador de la cola de imágenes
Durante las ejecuciones de importación por cron y REST, cuando el modo de cola de imágenes está activado, el plugin pone en cola las imágenes de vehículos restantes para su procesamiento asíncrono. Un gancho de WP-Cron independiente (as24ci_image_queue_process) ejecuta el procesador de la cola de imágenes. Este procesador procesa hasta 30 imágenes por lote y continúa hasta que la cola está vacía o se agota el tiempo asignado. Si quedan elementos, se vuelve a programar automáticamente.
Requisitos previos
- La importación automática está activada en los ajustes del plugin (pestaña Importación y límites → Automatización).
- Se ha configurado al menos un Seller ID.
- La conexión de la API funciona. Verifíquelo en la página de Estado del sistema.
- Para el modo cron del servidor: el entorno de hosting admite tareas programadas (cron, tareas programadas o un servicio equivalente).
Pasos de diagnóstico
Paso 1: Confirmar que la automatización está activada
Vaya a la pestaña Importación y límites → Automatización del plugin.
Confirme que la opción Activar importación automática está activada.
Confirme que está seleccionada la programación deseada.
Guarde los ajustes si realizó algún cambio.
### Paso 2: Comprobar la hora de la última ejecución
En el panel de administración del plugin o en la pestaña Sistema y ayuda, compruebe la marca de tiempo de Última ejecución de importación.
Si la marca de tiempo es más antigua que dos intervalos de programación completos, es probable que la automatización no se esté ejecutando.
Paso 3: Verificar que el evento WP-Cron está programado
Para el modo WP-Cron:
- Utilice un plugin de WordPress que pueda listar eventos programados (por ejemplo, WP Crontrol) o WP-CLI:
wp cron event list
- Busque el gancho
as24ci_scheduled_import. Confirme que está presente y que su próxima hora de ejecución es en el futuro. - Si el gancho no está presente, vuelva a guardar los ajustes de automatización en el plugin para reprogramarlo.
Paso 4: Verificar que WP-Cron funciona en este sitio
WP-Cron puede estar desactivado en algunos entornos de hosting o por plugins de rendimiento:
- Compruebe
wp-config.phppara ver si existe la línea:
define('DISABLE_WP_CRON', true);
Si esta constante está establecida en true, WP-Cron está desactivado. En su lugar, debe utilizar un cron del servidor o el endpoint REST.
- Confirme que se realizan solicitudes de página al sitio con regularidad (al menos una vez por intervalo de programación). En sitios con poco tráfico, es posible que WP-Cron no se ejecute a la hora prevista.
- Utilice un servicio que realice ping regularmente a la URL de su sitio para asegurarse de que WP-Cron tenga oportunidades de ejecutarse, o cambie al modo cron del servidor.
Paso 5: Probar el endpoint REST del cron
Si está utilizando o planea utilizar el endpoint REST:
- Obtenga el token de cron en la sección Importación y límites → Token de cron.
- Envíe una solicitud de prueba desde su servidor:
curl -H "Authorization: Bearer YOUR_TOKEN" \
"https://your-site.example.com/wp-json/as24ci/v1/cron-import"
- Una respuesta correcta devuelve HTTP 200 con
"success": truey los recuentos de importación. - Una respuesta 403 indica un token no válido o ausente. Verifique el token en los ajustes del plugin.
- Una respuesta 429 indica que la importación ya está en curso (el bloqueo está activo). Espere y vuelva a intentarlo.
- Una respuesta 500 indica una excepción durante la ejecución de la importación. Consulte el registro del plugin para obtener más detalles.
Si no se puede acceder a la API REST, confirme que los enlaces permanentes amigables están activados (Ajustes → Enlaces permanentes → Guardar) y que la API REST de WordPress no está bloqueada por un plugin de seguridad o por la configuración del servidor.
Paso 6: Verificar el registro de ping del cron externo
Si está utilizando una tarea cron del servidor que llama directamente a wp-cron.php, puede añadir ?as24ci_cron=1 a la URL para registrar el ping:
https://your-site.example.com/wp-cron.php?doing_wp_cron&as24ci_cron=1
El plugin registra la marca de tiempo de este ping y la muestra en la pestaña Sistema y ayuda como la hora de la última actividad del cron externo.
Paso 7: Comprobar si hay un bloqueo de importación obsoleto
Si una ejecución de importación anterior se interrumpió sin liberar su bloqueo, las ejecuciones posteriores se omitirán durante un máximo de 40 minutos. El registro contendrá:
Import runner (wp-cron): already in progress, skipping.
Si el bloqueo es realmente obsoleto (la ejecución original ya no está activa), espere a que expire el TTL de 40 minutos. El bloqueo se borra automáticamente si tiene más de 40 minutos de antigüedad cuando se intenta iniciar la siguiente ejecución.
Para borrar el bloqueo inmediatamente:
- Elimine el transient
as24ci_cron_import_runningde WordPress utilizando un plugin de gestión de transients o WP-CLI:
wp transient delete as24ci_cron_import_running
Paso 8: Investigar fallos del procesador de la cola de imágenes
Si las imágenes no se procesan después de la importación:
- Compruebe el registro del plugin para ver si hay entradas que contengan
Image queue worker. - Confirme que el gancho
as24ci_image_queue_processestá presente en la lista de eventos de WP-Cron. - Si el bloqueo de la cola de imágenes (
as24ci_image_queue_running) está obsoleto, elimínelo:
wp transient delete as24ci_image_queue_running
El bloqueo de la cola de imágenes tiene un TTL de 10 minutos y también se borra automáticamente cuando está obsoleto.
- Compruebe las estadísticas de Última ejecución de la cola de imágenes en la pestaña Sistema y ayuda para ver el recuento de elementos procesados, fallidos y restantes.
Referencia de configuración
| Ajuste | Ubicación | Descripción |
|---|---|---|
| Activar importación automática | Importación y límites → Automatización | Interruptor principal para la automatización de WP-Cron. Por defecto: desactivado. |
| Programación | Importación y límites → Automatización | Frecuencia de importación. Por defecto: cada hora. |
| Hora de inicio | Importación y límites → Automatización | Para programaciones diarias / dos veces al día. Por defecto: 06:00 (zona horaria del sitio). |
| Intervalo personalizado (minutos) | Importación y límites → Automatización | Para programación personalizada. Mínimo: 15 minutos. Por defecto: 30 minutos. |
| Modo de cron | Importación y límites | Controla qué tipo de activador se utiliza (wp-cron o server-cron). |
| Token de cron | Importación y límites | Token secreto para el endpoint REST. Autogenerado. Se puede regenerar. |
| Máx. vehículos por ejecución | Importación y límites | Limita los vehículos procesados por ejecución automática. 0 = ilimitado. |
| Modo de cola de imágenes | Importación y límites | Pone en cola las imágenes adicionales de los vehículos para su procesamiento en segundo plano. Por defecto: activado. |
Notas operativas
- Los eventos de WP-Cron requieren tráfico de carga de páginas para ejecutarse. En sitios de prueba o desarrollo sin visitantes habituales, WP-Cron no se ejecutará de forma fiable. En su lugar, utilice el endpoint REST con una tarea cron real del servidor.
- El ejecutor de importación intenta establecer un límite de tiempo de ejecución de PHP de 300 segundos antes de ejecutarse. En hostings que restringen
set_time_limit, es posible que esto no tenga éxito. El registro registrará una advertencia si esto sucede. Los catálogos muy grandes pueden agotar el tiempo de espera en hostings restrictivos. - El TTL de bloqueo para la importación principal es de 40 minutos (2400 segundos). El bloqueo para el procesador de la cola de imágenes es de 10 minutos (600 segundos).
- El token de cron se almacena en texto plano en las opciones de WordPress. Trátelo como un secreto. No lo comparta en foros públicos ni lo suba al control de versiones.
- La cola de imágenes puede contener hasta 20.000 elementos antes de que se registre una advertencia y se ejecute un paso de deduplicación.
- La ejecución de la importación a través del botón de administración Ejecutar ahora utiliza el mismo ejecutor compartido que WP-Cron y el endpoint REST. Está sujeto al mismo bloqueo y se bloqueará si ya hay una importación en curso.
Resolución de problemas
| Síntoma | Causa probable | Comprobación |
|---|---|---|
| Las importaciones no se ejecutan automáticamente | Importación automática desactivada | Active la automatización en los ajustes de Importación y límites |
as24ci_scheduled_import no está en la lista de cron | El evento se desprogramó tras un cambio de ajustes | Vuelva a guardar los ajustes de automatización para reprogramarlo |
DISABLE_WP_CRON está establecido | WP-Cron está desactivado globalmente | Utilice el cron del servidor o el endpoint REST en su lugar |
| La importación se activa pero aparece "already in progress" en el registro | Bloqueo de importación obsoleto | Espere 40 minutos o elimine el transient as24ci_cron_import_running |
| El endpoint REST devuelve HTTP 403 | El token es incorrecto, falta o no está configurado | Verifique el token en los ajustes de Importación y límites |
| El endpoint REST devuelve HTTP 429 | El bloqueo de importación está activo | Espere y vuelva a intentarlo; si persiste, elimine el transient de bloqueo |
| El endpoint REST devuelve HTTP 500 | Excepción durante la importación | Compruebe el registro para ver los detalles |
| API REST no accesible | Enlaces permanentes no establecidos, o API REST bloqueada | Regenere los enlaces permanentes; compruebe los ajustes del plugin de seguridad |
| La cola de imágenes no se procesa | WP-Cron no puede ejecutarse o el bloqueo de la cola de imágenes está obsoleto | Verifique WP-Cron; elimine el transient as24ci_image_queue_running si está obsoleto |
| La hora del último cron externo no se actualiza | El cron del servidor no está llamando al endpoint o no se ha añadido ?as24ci_cron=1 | Verifique el comando de la tarea cron y la URL |
| La importación agota el tiempo de espera en catálogos grandes | Tiempo de ejecución de PHP demasiado corto | Utilice el cron del servidor; contacte con el hosting para aumentar el tiempo máximo de ejecución de PHP |