Llamada a función del controlador

Hola,

Tengo un controlador con varias funciones dentro. Necesito ejecutar dos
de ellas 1 vez al dia con cron jobs. La cosa es:

1.- ¿Puedo llamar a las funciones del controlador desde la línea de
comandos sin que se ejecuten todas?
Ej:

ruby controlador.rb ejecutaría todas las funciones del controlador que

no necesiten parámetros?

Necesito algo que hiciera: # ruby controlador.rb
ejecutasólolafunciónqueyotediga

2.- Tengo también un rhtml con un botón que hace la llamada a la
función, pero la idea es que no tenga que estar yo pulsándolo una vez al
dia, si no un script que abriera la url y pulsara el botón.

Cualquiera de las 2 opciones me vale. Gracias!!

El 30/05/07, Mario M. [email protected]
escribió:> Tengo un controlador con varias funciones dentro. Necesito ejecutar dos

de ellas 1 vez al dia con cron jobs. La cosa es:

Hola Mario, parece que estamos todos a lo mismo a la vez… Yo
tambiénestoy con el tema de ejecutar tareas de Rails desde cron.

Si tienes un controlador/vista que desata la acción que quieras al ser
llamada, de manera que visitándola se ejecute, una
solucióncutre-y-rápida sería poner en el cron una visita con wget (un comando
de linux para descargarte una página web), y con eso simulas una
visita desde un navegador. Lee los comentarios en mi blog sobre esto
[1].

Ahora bien, esa solución no es muy elegante, porque estás pasando por
el servidor web con lo que le estás dando carga extra (en caso de que
hagas peticiones muy a menudo y hagan operaciones costosas) y
ademástienes una URL visitable desde fuera que quizá no te interese que se
pueda descubrir. Pero bueno, como solución cutre-y-rápida, funciona
bien.

En [2] verás otras maneras propuestas para automatizar esto. La
másbásica es similar pero en lugar de visitar a un controlador/vista con
wget, ejecutas directamente métodos de un modelo con script/runner. Lo
malo de este método, dice ahí, es que tarda mucho en arrancar y
consume mucha RAM.

Ahora estoy probando un plugin llamado daemon_generator [3] que
básicamente te permite tener demonios que ejecutan lo que necesites de
tu aplicación, ellos solitos se duermen y despiertan cada X segundos.
Muy sencillo de instalar y configurar pero lamentablemente parece que
no funciona bien con Rais 1.2.x…

¿Alguien se ha peleado un poco con daemon_generator?

[1]
http://www.jaimeiniesta.com/2007/05/24/el-historial-de-boris-y-el-top-keywords/
[2]
http://wiki.rubyonrails.org/rails/pages/HowToRunBackgroundJobsInRails/
[3]

Hola,

gracias por contestar. Creo que lo voy a hacer con un botón submit que
llame a la función del controlador y onLoader para que pulse
automáticamente el submit y con wget para acceder en el cron.

Ya posteo aquí cuando esté funcionando.

Muchas gracias.

P.D: no se nada del daemon. Suerte!