A la hora de programar poder definir tareas que se realicen de forma periódica puede ser útil o incluso indispensable: Utilizar los CRON resulta muy útil. ¿Como funcionan?
El hospedaje dónde tenemos alojado el proyecto influye para usar dicha tecnología por lo que no vale cualquiera ya que muchos proveedores pueden bloquear su uso. En AGENCIA LA NAVE pondremos el proyecto en un servidor sin limite alguno y adaptado a la creación de CRONs personalizados.
Los CRON(es) se pueden utilizar para multitud de tareas como definir copias de seguridad automatica de las bases de datos o del contenido de nuestro proyecto. Pero también puede definir ejecuciones de scripts periódicos (PHP) de nuestra web para interactuar con el usuario.
Se pueden programar tareas para que se ejecuten cada minuto, un cierto día solo al año, todos los días, todos los meses, o incluso en ciertas horas puntuales y minutos al día. Se suele elegir la madrugada para tareas de mantenimiento de optimización de bases de datos o tareas de contabilización de visitas.
Las tareas más habituales que se pueden necesitar en un CRON son de limpieza de duplicados en la base de datos, crear caches de disco para accelerar la web o gestionar campañas de publicidad (para contabilizar impresiones/clicks a posteriori), analizar las estadísticas del registro (LOG) del servidor web, u otras tareas.
Se debe intentar evitar usar SCRIPTS programados de forma no eficiente o que empleen mucha CPU y por supuesto durante la ejecución de estas tareas se puede necesitar programar que la web en ese periodo muestre un mensaje de “mantenimiento”.
Debemos tener especialmente cuidado con las tareas programadas que afecten a las bases de datos para evitar interbloqueos que puedan producir daños en los datos y por supuesto, antes de la ejecución de dichas tareas mantener unas estrictas políticas de copia de seguridad por si se interrumpieran por una fatalidad dichas tareas (problema de hardware, corte de luz, y otros motivos de fuerza mayor).
Al final es tan importante programar bien el interfaz de usuario de un proyecto como saber optimizar los recursos necesarios para la ejecución de procesos internos de mantenimiento de un proyecto que eviten que finalmente nuestra web no esté accesible.