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:

  1. 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.
  2. Modo cron del servidor: una tarea cron real del sistema operativo llama a wp-cron.php o 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ónIntervalo
hourlyCada 60 minutos
as24ci_every_6_hoursCada 6 horas
twicedailyDos veces al día
dailyUna vez al día
as24ci_customIntervalo 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ímitesAutomatizació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

  1. Vaya a la pestaña Importación y límitesAutomatización del plugin.

  2. Confirme que la opción Activar importación automática está activada.

  3. Confirme que está seleccionada la programación deseada.

  4. Guarde los ajustes si realizó algún cambio.

  5. ### Paso 2: Comprobar la hora de la última ejecución

  6. 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.

  7. 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:

  1. Utilice un plugin de WordPress que pueda listar eventos programados (por ejemplo, WP Crontrol) o WP-CLI:
   wp cron event list
  1. Busque el gancho as24ci_scheduled_import. Confirme que está presente y que su próxima hora de ejecución es en el futuro.
  2. 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:

  1. Compruebe wp-config.php para 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.

  1. 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.
  2. 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:

  1. Obtenga el token de cron en la sección Importación y límitesToken de cron.
  2. 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"
  1. Una respuesta correcta devuelve HTTP 200 con "success": true y los recuentos de importación.
  2. Una respuesta 403 indica un token no válido o ausente. Verifique el token en los ajustes del plugin.
  3. Una respuesta 429 indica que la importación ya está en curso (el bloqueo está activo). Espere y vuelva a intentarlo.
  4. 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_running de 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:

  1. Compruebe el registro del plugin para ver si hay entradas que contengan Image queue worker.
  2. Confirme que el gancho as24ci_image_queue_process está presente en la lista de eventos de WP-Cron.
  3. 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.

  1. 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

AjusteUbicaciónDescripción
Activar importación automáticaImportación y límites → AutomatizaciónInterruptor principal para la automatización de WP-Cron. Por defecto: desactivado.
ProgramaciónImportación y límites → AutomatizaciónFrecuencia de importación. Por defecto: cada hora.
Hora de inicioImportación y límites → AutomatizaciónPara programaciones diarias / dos veces al día. Por defecto: 06:00 (zona horaria del sitio).
Intervalo personalizado (minutos)Importación y límites → AutomatizaciónPara programación personalizada. Mínimo: 15 minutos. Por defecto: 30 minutos.
Modo de cronImportación y límitesControla qué tipo de activador se utiliza (wp-cron o server-cron).
Token de cronImportación y límitesToken secreto para el endpoint REST. Autogenerado. Se puede regenerar.
Máx. vehículos por ejecuciónImportación y límitesLimita los vehículos procesados por ejecución automática. 0 = ilimitado.
Modo de cola de imágenesImportación y límitesPone 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íntomaCausa probableComprobación
Las importaciones no se ejecutan automáticamenteImportación automática desactivadaActive la automatización en los ajustes de Importación y límites
as24ci_scheduled_import no está en la lista de cronEl evento se desprogramó tras un cambio de ajustesVuelva a guardar los ajustes de automatización para reprogramarlo
DISABLE_WP_CRON está establecidoWP-Cron está desactivado globalmenteUtilice el cron del servidor o el endpoint REST en su lugar
La importación se activa pero aparece "already in progress" en el registroBloqueo de importación obsoletoEspere 40 minutos o elimine el transient as24ci_cron_import_running
El endpoint REST devuelve HTTP 403El token es incorrecto, falta o no está configuradoVerifique el token en los ajustes de Importación y límites
El endpoint REST devuelve HTTP 429El bloqueo de importación está activoEspere y vuelva a intentarlo; si persiste, elimine el transient de bloqueo
El endpoint REST devuelve HTTP 500Excepción durante la importaciónCompruebe el registro para ver los detalles
API REST no accesibleEnlaces permanentes no establecidos, o API REST bloqueadaRegenere los enlaces permanentes; compruebe los ajustes del plugin de seguridad
La cola de imágenes no se procesaWP-Cron no puede ejecutarse o el bloqueo de la cola de imágenes está obsoletoVerifique WP-Cron; elimine el transient as24ci_image_queue_running si está obsoleto
La hora del último cron externo no se actualizaEl cron del servidor no está llamando al endpoint o no se ha añadido ?as24ci_cron=1Verifique el comando de la tarea cron y la URL
La importación agota el tiempo de espera en catálogos grandesTiempo de ejecución de PHP demasiado cortoUtilice el cron del servidor; contacte con el hosting para aumentar el tiempo máximo de ejecución de PHP

Documentos relacionados