El 17/03/2008, a las 18:01, Jhon K.
escribió:
Que tal Gente!.
Pues bien. Gracias.
ahora,como hago para programar que se ejecute dicho controlador cada
cierto tiempo . Es decir, un crow… Si alguien me puede ayudar, se
lo
agradezco.
El sistema operativo esta en linux
No todos los linux tiene curl. Cuidado. mientras en el mundo bsd lo
normal es curl e incluso fetch, en un linux, lo más normal (por mi
experiencia) es encontrar wget.
Lo suyo es que ejecutes el cron desde el usuario que ejecute el
servidor web, e incluso uno con menos privilegios, pero visto el
caso… vamos a pasar de temas de seguridad por el momento.
el cron funciona con lineas de texto. Se basa en un archivo por
usuario y uno general. Supongamos el general que, en tu caso tendría
esta sintaxis:
*/5 * * * * root wget http://localhost/tarea/accion
te explico
*/5 todos los minutos que al dividir por 5 su resto sea 0, vamos cada
cinco minutos
- a todas las horas
- Todos los números de
día* Todos los meses
- Todos los días de la semana
root Como el usuario root
wget http:/… es el comando
lo más sencilo que se me ocurre es que vayas a una consola y escribas
tal cual
echo */5 * * * * root wget http://localhost/tarea/accion >> /etc/crontab
echo escupe por stdout los argumentos
añade a un nodo del sistema de archivos
/etc/crontab es el nodo al que queremos añadir la información sin
reescribir el contenido.
Si escribes eso tal cual el sistema ejecutará wget … como root cada
5 minutos.
En aplicaciones rails lo uso de una manera concreta pese a que digan
que es mejor hacerlo con rake. El sistema de caches se refresca cada 5
minutos para generar contenido dinámico. En vez de generar el
contenido el primer usuario que consulte el recurso despues de la
expiración, lo añado a cron.
En la aplicación, toda petición desde 127.0.0.1 es generada sin caché,
y su resultado es almacenado en cache. Una consulta lenta, no será el
usuario quien la procese, sino que es el propio sistema.
Espero que te sirva de ayuda.
Un Saludo.