Adjunto un pequeño ejemplo de como programar una tarea cron en un servidor Linux para que ejecute una tarea rake en Ruby on Rails.
1.-La tarea Rake ( en el subdirectorio [aplicación rails]/lib/tasks: #*1
require ‘rubygems’
namespace :utils do
desc “Hacer algo”
task(:algo=> :environment) do #*2
for model in Model.find(:all)
puts model.name
end
end
end
#*1 Guardarlo con el nombre que queráis.
#*2 esto permite que podamos acceder a nuestra aplicación y modelos.
2.-Desde el cron del panel de nuestro hosting o usando crontab -e desde la terminal:
[parámetros del cron ] cd /home/[usuario ]/[aplicación rails]/ && /usr/local/bin/ruby /usr/local/bin/rake utils:algo RAILS_ENV=’production’
Comentarios:
* Poner los paths correctos en cada caso. Podéis usar el comando “which” p.ej “which rake” para saber donde están las cosas.
* Para que la tarea se ejecute la aplicación Rails debe funcionar bien desde la web.
* En este caso la aplicación está en production, por tanto he fijado el RAILS_ENV en este entorno
* todo el comando va en una sola línea
* Los parámetros del cron los podéis buscar por internet.
Con este procedimiento podemos programar todas aquellas tareas que queremos que se ejecuten en background cada determinado tiempo. Sin duda es un recurso imprescindible para cualquier aplicación.
Popularity: 1% [?]


1 Comment
at 23:00 :53 - 1st septiembre 2007 Permalink
Muy util, gracias por la informacion
Saludos.
Post a Comment