lunes, 17 de agosto de 2015

Tareas programadas en CogeIgniter [WINDOWS]

Buenas.

Hoy vamos a hablar sobre cómo crear tareas programadas haciendo uso de codeIgniter.
Con este artículo aprenderemos a ejecutar de forma automática un método creado mediante codeIgniter cada X tiempo.

Lo primero que debemos hacer, es crear un controlador. Debemos tener en cuenta que dependiendo de lo que queramos hacer, debemos imponer unas medidas de acceso u otras.

El controlador quedaría similar a esto:
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Cronjobs extends CI_Controller {
    
    function __construct() {
        
        parent::__construct();

    }
    
    public function index() {
        
        redirect( site_url() );
    
    }
    
}

Tras ello, creamos la función que se va a ejecutar cada X tiempo.
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Tareas extends CI_Controller {
    
    function __construct() {
        
        parent::__construct();

    }
    
    public function index() {
        
        redirect( site_url() );
    
    }

    public function tu_funcion() {
        
        //escribe tu funcion
    
    }

}
En este caso, yo lo que he hecho, ha sido crear una función (al final del articulo os la he puesto) que asigne de forma automática puntos a todos aquellos usuarios que hayan comprado la mensualidad llamada ‘puntos_automaticos’. Esta mensualidad hace que cada cierto tiempo se le asignen puntos a los usuarios sin necesidad de tener que conseguirlos viendo anuncios. Además, se acumula con otras ofertas.

Por ejemplo si un usuario ha comprado la bonificación de ‘puntos_automaticos’ y además tiene la bonificación de conseguir 16 puntos por anuncio, pues cada vez que se ejecute este método, se le asignaran 16 puntos en lugar de 1.

También comprueba que bonificación es mejor. Ya que en regaloconsolas se pueden obtener bonificaciones por 2 lados, por un lado realizando logros y por otro comprando las bonificaciones. Sin embargo, las bonificaciones compradas y las ganadas por logros no se acumulan. Este método, se encarga de ver que bonificación es mejor, si la de logros o la comprada. Una vez comparadas, ejecuta la mejor.

Una vez terminado nuestro método, debemos ir al programador de tareas > crear nueva tarea > acciones > nueva…
Y debemos configurarlo de la siguiente forma:
En el recuadro rojo, debemos introducir la ruta de nuestro navegador. Mientras que en el recuadro negro, debemos introducir la ruta de nuestro método.

Por ejemplo, la ruta del método que puse al principio seria:
http://127.0.0.1/regaloconsolas/index.php/tareas/tu_funcion

Finalmente, debemos seleccionar los periodos en los que se va a ejecutar este método. Para ello debéis ir a desencadenadores > nuevo… Y elegimos según nuestras necesidades.

Y eso es todo, un saludo.

1 comentario:

  1. Te faltaría añadir la forma de añadir el CRON en Linux, que es el OS más usando en servidores.

    En relación al comandos para la terminal, CodeIgniter soporta CLI en el cual puedes añadir comandos para ejecutarlos directamente desde la Terminal. Sería interesante que le echaras un vistazo: http://www.codeigniter.com/user_guide/general/cli.html

    ResponderEliminar