Mastermind sobre Joomla! ®

El Podcast de Joomla! para que potencies tus proyectos



Planificar es traer el futuro al presente para que puedas hacer algo al respecto ahora.

Alan Lakein

Desde Joomla 4.1 tenemos disponible un planificador de tareas potente y flexible que nos permite automatizar muchas tareas de nuestro sitio fácilmente.

 

Actualidad

Mi semana Joomla

  • Protegiendo sitios con StopForumSpam y el módulo spam protect de PHPFactory
  • Investigando sobre autenticación y APIs para Joomla 4

Novedades en MastermindJoomla

  • Llegan los episodios en vídeo: Vídeopodcast
  • Alternaremos, un episodio de audio y uno de video. La frecuencia de publicación será cada 21 dias.

Actualidad Joomla!

  • Salió Joomla 4.1 Beta 3

El planificador web de Joomla 4.1

El planificador web de Joomla 4.1 es un proyecto que viene de la última edición del Summer of Code. La idea inicial era poder ofrecer la funcionalidad de cronjob o programación de tareas a aquellos clientes que no pueden usarla en su hosting.

El resultado ha sido algo mucho más interesante que combina flexibilidad, potencia y facilidad de uso en una funcionalidad que se convertirá en una de nuestras favoritas en poco tiempo.

  • Proyectos Joomla del SOC 21
  • Detalle en GitHub del Planificador web

¿Qué es el planificador web de Joomla 4.1?

El planificador web de Joomla 4.1 es una nueva extensión que viene en Joomla 4.1 y que nos permité gestionar las tareas que queremos que se ejecuten periódicamente en nuestro sitio Joomla. Si estás familiarizado con los cronjob o tareas programadas básicamente es una forma de poder gestionar estas tareas programadas aunque tu servidor no tenga esta funcionalidad.

Así, si tu usas habitualmente los cronjob o si tu servidor los permite, este planificador no es más que una bonita interfaz que te permite gestionar todas tus tareas programadas desde Joomla.

¿Cómo funciona el planificador de tareas de Joomla?

Para que el planificador de tareas funcione, es necesario que haya algo que "dispare" su funcionamiento de forma periódica. El planificador contempla 3 formas para que puedas activar su funcionamiento.

Planificador de tareas en modo WebCron

Esta es la forma más común de ejecutar una acción programada en cualquier sitio web. Básicamente tendremos una url que llamaremos periódicamente.

Para llamarla periódicamente podemos utilizar la funcionalidad de cronjob de nuestro servidor o servicios como easycron.com o similares.

Planificador de tareas en modo deferido o perezoso

El modo deferido del planificador de tareas es un modo de ejecución que se ejecuta con las visitas a tu sitio. Cada vez que un usuario accede a tu sitio se comprobaría si hay tareas por ejecutar y se ejecutarían en modo deferido.

Este modo también se conoce como pseudocron y otros CMS como WordPress lo incorporan por defecto también en su instalación.

Este modo de ejecución es el menos fiable de todos porque depende de las visitas que tengas en el sitio. Así por ejemplo si tienes una visita planificada cada hora pero no recibes ninguna visita al sitio en varias horas, la tarea no se ejecutará.

Planificador de tareas en modo CLI

El modo de ejecución CLI del planificador de tareas es un modo de ejecución que se ejecuta cada vez que desde el propio servidor ejecutamos el comando PHP de ejecución de tareas del planificador.

Este es mi modo de ejecución de tareas cron preferido. Al ejecutarse directamente en mi servidor y sobre línea de comandos tiene dos ventajas fundamentales:

  1. Mayor seguridad del planificador. Al no ser una url pública, sino un comando interno, nadie puede intentar usar la llamada para saturar mi servidor.
  2. Al ejecutar PHP en modo CLI te saltas algunas limitaciones de tiempo de ejecución y previenes errores.

Cómo ejecutar el planificador de tareas desde el CLI

Para ejecutar el planificador de tareas desde el CLI de Joomla el comando que tenemos que utilizar es:

php joomla.php scheduler:run 

Esto ejecutará todas las tareas pendientes de ejecutar en el momento en que se ejecute. Una configuración estándar que funcionaría en la mayoría de los casos sería planificar este comando para que se ejecute en un cronjob cada 5 minutos. Con esto, cada 5 minutos se comprobarán las tareas que necesitan ser ejecutadas y se ejecutarán.

Ten en cuenta que aunque configuremos el cronjob del servidor para funcionar cada 5 minutos, esto sólo comprobará el estado de las tareas. La verdadera periodicidad de las tareas la definiremos en el planificador de tareas de Joomla para cada tarea.

¿Cómo se añaden tareas planificadas a Joomla?

Para añadir una tarea planificada en Joomla tendremos que ir a la zona de Sistema -> Planificador de tareas y ya estaremos en el planificador.

Al pinchar en el botón para añadir una nueva tarea, podremos elegir el tipo de tarea que queremos definir.

En Joomla vienen ya definidas varios tipos tareas programadas que ahora mismo cubren todas las necesidades que puedas tener: Poner el sitio en mantenimiento, sacar el sitio de mantenimiento, ejecutar una petición GET, Redimensionar imágenes del sitio.

Es de esperar que los desarrolladores vayan creando tipos de tareas programadas para sus extensiones y para cosas más concretas, pero mientras que esto sucede, lo que podemos hacer es utilizar el tipo de tarea que realiza la petición GET. Esta tarea nos permite hacer una llamada a una URL y con esto emular a un webcron.


¿Usas los cronjobs (tareas programadas) en tu sitio? ¡Déjanos un comentario!


Escuchar en ivoox

    Comentarios gracias a CComment


    ¡Escúchanos donde quieras!

    Apple Podcasts
    iVoox
    Google Podcasts
    Spotify

    mastermindjoomla.com is not affiliated with or endorsed by The Joomla! Project™. Use of the Joomla!® name, symbol, logo and related trademarks is permitted under a limited license granted by Open Source Matters, Inc.


    mastermindjoomla.com no tiene afiliación alguna ni está recomendada por el proyecto Joomla! Project™. El uso del nombre Joomla!®, su símbología, y logotipo y sus marcas relacionadas está permitido bajo una licencia limitada concedida por Open Source Matters, Inc.

    MastermindJoomla.com es un proyecto de MJ y Extly