martes, 12 de julio de 2011

Aprendiendo a utilizar Cron Job

En un proyecto que tengo con unos colegas de la uni, me he visto ante una duda a la cual mis conocimientos de programador no hayaban respuesta, ¿cómo hacer para que a las 12 de la noche se actualice un campo de la base de datos?. Buscando por internet leo "Cron Job", así que indago sobre ello y milagrosamente descubro que es lo que necesito (bueno, y más).

Cron Job es un servicio de los servidores en Linux (para Windows está el "Programador de Tareas") que ejecuta en un momento, o varios, determinado por el usuario un script en PHP (es decir un archivo .php). Viene muy bien cuando tienes que ejecutar alguna modificación diaria de la base de datos, como actualizar o borrar registros, aunque se le podría dar mas usos (los que php permita).


El pantallazo corresponde al panel del Cron Job que tengo en mi servidor de pruebas, puede que a vosotros os salga algo distinto, pero la lógica es la misma, tienes que colocar la ruta donde se encuentra el archivo .php, y luego ya puedes configurar cuando quieres que se ejecute, si diariamente, semanalmente, cada hora o cuando sea, por ejemplo yo he programado un Cron Job con la misma configuración que sale en la imagen, eso significa que se ejecutará todos los días de todas las semanas de todos los meses a las 00:00, es decir, a media noche.

El servicio de Cron Job es esto, a partir de ahí está el script que cada uno le meta, yo esta noche comprobaré si mi script funciona.

4 comentarios:

  1. Hace ya rato que en mi servidor fue las 12 de la noche, y efectivamente a ejecutado el script, puse una sentencia SQL de actualizar valores de una tabla, y al comprobar la tabla he visto que están modificados los valores a como los puse en la sentencia. Funciona :D

    ResponderEliminar
  2. hola fran muxisimas gracias por tu publicacion la verdad es k m ha servido muxo xk d mi part lo acabo de descubrir y no habia encontrado muxa informacion..... lo pruebo hoy a ver como queda y repito muxas gracias

    ResponderEliminar
  3. Hola Fran, mira tengo unas inquietudes acerca del uso de cronjobs.. desearia saber como implementarlo sobre windows en un servidor local. gracias..
    att: Natalia :)

    ResponderEliminar
    Respuestas
    1. Buenas tardes Natalia.
      Ante todo, perdón por la demora, pero con los exámenes uno apenas mira sus blogs. Según se tienes dos opciones, la forma "habitual" de utilizar un servicio del IIS que es con Tareas Programadas (al ser local mira a ver si con el propio tareas programadas de Windows te deja o si está dentro del IIS), o bien instalarte algún proyecto web que haga la función de cronjob, como z-cron.
      Te dejo enlaces para poder continuar, ya que como no lo he probado empíricamente, no te puedo guiar más específicamente.

      Usar Tareas Programadas: http://drupal.org/node/31506
      Z-Cron: http://www.z-cron.com/scheduler.html

      Un saludo.

      Eliminar