Extendiendo la configuración gráfica del cron en Magento

Para evitar tener que lidiar con la configuración por xml, en Magento podemos crear la configuración gráfica para los cron jobs de nuestros módulos, de manera que estamos dando mayor flexibilidad al usuario y nos evitamos riesgos que podrían ocasionarse por una mala edición de los archivos.

Normalmente las opciones que nos ofrece la configuración suelen ser suficiente.

En otros casos, es posible que no nos alcance con sólo poder configurar una ejecución diaria, semanal o mensual. En éste esquema, nos estamos perdiendo la posibilidad de configurar la ejecución con repetición por horas o por minutos.

Para poder obtener esas opciones vamos a necesitar crear dos modelos para nuestro módulo, que serán los encargados de brindarnos esas nuevas posibilidades (y de paso vamos a arreglar otras que no funcionan desde la implementación original).

Continue reading

Configuración gráfica para un cron job en Magento

Siempre que se habla de crear cron jobs para un módulo en Magento, se explica cómo configurar el crontab y el xml del módulo.

Si bien vamos a lograr el objetivo, esto siempre obliga a quien administra el proceso a estar editando un archivo y corrigiendo los tiempos de ejecución.

De ésta forma no sólo estamos ante una situación incómoda sino que, además, podríamos estar comprometiendo la integridad del módulo.

Voy a dar por sentado que ya nuestro cron job funciona como queremos y que hemos creado la configuración de otros parámetros del módulo. Sólo nos vamos a concentrar en agregar la configuración gráfica para la ejecución.

Ahora bien, el primer paso es crear un nuevo modelo que será el encargado de transformar los valores que ingresemos en la configuración a valores que el Cron Manager de Magento entienda.

Continue reading

Crear un cron job en Magento

Muchas veces vamos a necesitar procesos que se ejecuten sin importar si del otro lado de la pantalla hay algún usuario realizando alguna acción.

Por lo general éste tipo de tareas tienen que ver más con procesos administrativos que con la experiencia de compra en si misma.

Una de las funcionalidades de Magento es el cron, que no es más que una extensión del cron del sistema operativo. La pequeña diferencia sería que desde el sistema operativo ejecutamos un único archivo de la plataforma y ésta, según configuraciones, se encargará de correr los procesos que correspondan.

Un cron job para Magento es, básicamente, un método de un modelo que se encargará de realizar una acción.

Para lograr el nuestro, lo primero sería crear la clase y el método que más tarde invocaremos. Un ejemplo podría ser el siguiente.

class Dc_Modulo_Model_Cron {
 
    public function runMyCronJob() {
 
        //Acciones a realizar
 
    }
 
}

De más está decir que lo que haga el método quedará librado a la necesidad de cada uno. No hace al ejemplo definir algún proceso.

Continue reading

Automatizar backups de PostgreSql

Ya vimos cómo hacer un backup en PostgreSql. Ahora, para ahorrarnos tiempo y tener algo más de tranquilidad, vamos a ver cómo automatizar ese proceso.

Si por casualidad el primer pensamiento es poner las instrucciones para pg_dump en un script, lamento desilusionar. Tendríamos un pequeño problema, y es que el comando se quedará frenado pidiéndonos la contraseña del usuario que quiere hacer el backup.

Como siempre, tenemos una salida.

Continue reading