WordPress Hosting

action scheduler cleaning

Tienes un problemón, y deberías programar el vaciado automático del programador de acciones de WordPress

Si ya has pasado por el trago de limpiar miles o millones de registros del programador de acciones, sabes lo que fastidia.

En este otro tutorial vimos cómo borrar acciones programadas de golpe, ya sea con consultas SQL, desde phpMyAdmin o con un plugin. Pero hay un problema que no resolvía esa guía, y es ni más ni menos ¿qué pasa cuando al cabo de unas semanas o meses vuelves a tener la base de datos llena de basura?

Pues eso, que vuelves a estar igual, y si tienes una tienda online con movimiento o una web con varios plugins que usan el programador de acciones, la acumulación de registros inútiles es inevitable.

Hoy vamos a aprender a programar esa limpieza del puñetero Action Scheduler para que se haga sola, sin que tengas que acordarte ni tocar nada.

Por qué la limpieza manual no es suficiente

Limpiar una vez está bien, lo haces, liberas espacio, tu base de datos se alivia y todo va más rápido.

El problema es que las tablas wp_actionscheduler_actions y wp_actionscheduler_logs se vuelven a llenar porque es lo que hacen, almacenar registros de cada acción que ejecutan WooCommerce, plugins de membresía, de formularios, de automatizaciones y un enorme etcétera.

Si tu web tiene actividad constante en cuestión de semanas puedes volver a acumular cientos de miles de registros de acciones completadas, fallidas, canceladas y registros de log que no sirven absolutamente para nada más que para ocupar espacio.

La única solución real es que la limpieza se haga de forma automática y periódica.

Qué registros se pueden limpiar automáticamente

Antes de configurar nada conviene tener claro qué se limpia y qué no. Esto ya lo expliqué en detalle en el tutorial de borrado de acciones programadas pero te hago un resumen rápido:

Lo que se puede (y se debe) limpiar:

  • Acciones completadas: ya se ejecutaron, no sirven para nada.
  • Acciones fallidas: dieron error y ahí se quedaron.
  • Acciones canceladas: alguien las canceló manualmente.
  • Acciones vencidas: no se ejecutaron a tiempo, se les pasó el arroz.
  • Acciones pendientes antiguas: llevan semanas esperando y nadie las va a ejecutar.
  • Registros del log: el historial detallado de cada ejecución, que puede crecer de forma desproporcionada.

Lo que NO se tocan:

  • Acciones pendientes recientes y las que están en ejecución: se quedan siempre intactas, porque esas las necesita tu web para funcionar correctamente.

Cómo configurar la limpieza automática paso a paso

Para esto vamos a usar Easy Actions Scheduler Cleaner, que desde su versión 1.1.0 incorpora la posibilidad de programar limpiezas automáticas con un sistema bastante completo.

Si ya tienes el plugin instalado, ve a «Herramientas → Easy Actions Scheduler Cleaner». Si no lo tienes, instálalo desde el el instalador de plugins de tu WordPress, es totalmente gratuito, actívalo y te llevará directamente a su página de ajustes.

Verás que ahora hay dos pestañas: Limpieza manual (la limpieza de siempre) y Limpieza programada, que es la que nos interesa hoy.

Activar la limpieza programada

Al entrar en la pestaña de limpieza programada lo primero que verás es una casilla para activar el sistema de programación de limpieza de registros. Mientras no lo actives no se programa nada.

programar limpieza action scheduler

Elegir la frecuencia

Justo debajo de la casilla hay un selector de frecuencia con cuatro opciones:

  • Diaria: para sitios con mucha actividad (tiendas grandes, webs con miles de transacciones diarias).
  • Semanal: la opción recomendada para la mayoría de sitios.
  • Quincenal: para sitios con actividad moderada.
  • Mensual: para blogs o webs con pocos plugins que usen el programador de acciones.

La primera ejecución se programa después de que pase el intervalo completo que elijas. Es decir, si seleccionas semanal la primera limpieza se hará una semana después de guardar los ajustes, no inmediatamente.

Configurar qué tipos de registros limpiar

Esto es casi lo mejor, porque en la tabla de tipos de acción puedes activar o desactivar la limpieza de cada tipo de registro de forma independiente. Para cada uno hay tres columnas que son importantes:

  • Limpiar (casilla): si quieres que se limpie ese tipo o no.
  • Registros mínimos (umbral): el número mínimo de registros que tiene que haber para que se ejecute la limpieza de ese tipo.
  • Recuento actual: cuántos registros de ese tipo tienes ahora mismo.

Para las acciones pendientes antiguas hay un campo adicional donde puedes indicar a partir de cuántos días se consideran antiguas (por defecto 30, configurable de 7 a 365 días).

tipos de acciones programadas a limpiar

Cuando el recuento actual supere el umbral que has configurado verás una marca verde (✓) junto al número, indicando que ese tipo de acción se limpiará en la próxima ejecución.

Dale al botón de guardar ajustes y ya está, el plugin se encarga de registrar el evento en el cron de WordPress y se ejecutará automáticamente según la frecuencia que hayas elegido.

Si todo ha ido bien debajo del interruptor verás un mensaje indicando cuándo será la próxima ejecución programada.

Sistema de umbrales para limpiar solo cuando hace falta

Esta es la parte que más me gusta del sistema de limpieza programada, porque evita ejecuciones innecesarias.

Pongamos un ejemplo, que tienes configurado el umbral de acciones completadas en 100 y solo hay 35 registros, la limpieza programada se ejecutará, comprobará ese número y dirá «aquí no hay nada que hacer» y pasará al siguiente tipo.

Solo cuando los registros superen el umbral que tú has definido se procede al borrado.

Esto tiene tres ventajas obvias:

  • No desperdicia recursos del servidor: Si no hay nada que limpiar, no se hacen operaciones de borrado innecesarias en la base de datos.
  • Puedes dejarlo activo sin preocuparte: No va a borrar cuatro registros cada vez que se ejecute. Espera a que realmente se acumule una cantidad que merezca la pena limpiar.
  • Sabes lo que va a pasar: Desde la misma pantalla de configuración puedes ver en todo momento cuántos registros hay de cada tipo y si superan o no el umbral. Sin sorpresas.

Cómo saber qué pasó en la última limpieza

Cada vez que se ejecuta la limpieza programada el plugin guarda un registro del resultado que se muestra en la parte superior de la pestaña de programación.

Puedes ver tres estados:

  • Verde: se ejecutó correctamente y te muestra cuántos registros se borraron de cada tipo.
  • Azul: se ejecutó pero no había nada que limpiar (ningún tipo superó su umbral).
  • Rojo: hubo un error (por ejemplo, que las tablas del programador de acciones no existan).

Así puedes verificar que todo funciona sin tener que andar adivinando.

Qué configuración te recomiendo según tu caso

No todas las webs necesitan la misma configuración. Aquí van algunas orientaciones:

  • Tienda WooCommerce con bastante movimiento: frecuencia semanal, umbrales bajos (50-100 para acciones, 200-500 para logs), días de pendientes antiguas en 15-30. Son las que más basura generan.
  • Web con membresías o suscripciones: frecuencia semanal o quincenal, umbrales medios (100-200), días de pendientes antiguas en 30.
  • Blog con WooCommerce de baja actividad: frecuencia mensual, umbrales altos (200-500), días de pendientes antiguas en 60. No genera tanta basura pero conviene tenerlo controlado.
  • Web sin WooCommerce pero con plugins que usan Action Scheduler: frecuencia mensual, umbrales altos (200-500). Plugins como formularios, automatizaciones o incluso algunos de SEO pueden usar el programador de acciones.

Lo importante es que no te compliques. Los valores por defecto del plugin ya están pensados para un uso general razonable. Si no tienes claro qué poner déjalos como están y ajusta solo la frecuencia.

Una nota sobre el cron de WordPress

La limpieza programada usa WP-Cron, que es el sistema de tareas programadas de WordPress.

Esto funciona bien en la mayoría de sitios, pero tiene una particularidad, y es que WP-Cron se ejecuta cuando alguien visita la web, de modo que si tu sitio tiene muy poco tráfico, es posible que la limpieza se retrase un poco respecto a la hora programada.

Si tienes configurado un cron manual del sistema esto no será un problema porque el cron se dispara de forma puntual independientemente de las visitas.

Combina limpieza manual y programada

Mi recomendación es la misma que sigo con los sitios de nuestros clientes del servicio de mantenimiento web:

  1. Haz una limpieza manual para dejar la base de datos limpia. Esto es especialmente importante si llevas tiempo sin limpiar y tienes miles o millones de registros acumulados (aquí tienes el tutorial completo para hacerlo).
  2. Activa la limpieza programada para que se mantenga limpia automáticamente. Así no vuelves a tener el problema de siempre.

La combinación de ambas es lo que realmente funciona.

Y ya sabes, el plugin es gratuito y está en WordPress.org: Easy Actions Scheduler Cleaner o en tu instalador de plugins. Si te resulta útil, que seguro que sí, te agradezco que le dejes una valoración de 5 estrellas, que ayuda mucho a que lo encuentre más gente.

Compártelo en tus redes
Resúmelo con tu IA

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en las estrellas para valorarlo!

Promedio de puntuación 4.8 / 5. Total de votos: 6

¡Todavía no hay votos! Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!



Sobre el autor

Scroll al inicio