ruby-on-rails - ejemplos - schedule cron rails
El trabajo de Cron en ruby on rails no funciona (2)
Seguí el railscast http://railscasts.com/episodes/164-cron-in-ruby pero parece que no puedo hacerlo funcionar.
- Tengo schedule.rb en mi config.
- Quería actualizar mi Database.count todos los días en mi página de inicio.
- No puedo encontrar deploy.rb en mi carpeta. ¿Dónde está?
Para fines de prueba, lo cambié a cada 2 segundos.
[schedule.rb]
every ''2 * * * *'' do
rake "pages_controller:home"
end
[pages_controller.rb]
class PagesController < ApplicationController
def home
@title = "Home"
@companies = Company.find(:all, :limit => 20)
@count = Company.count
end
he puesto
gem ''whenever'', :require => false
en mi gemfile ¿Qué se ha perdido?
Entonces ... Junte cosas.
- Necesita un Capfile y un config / deploy.rb para implementar su código usando Capistrano y Whenver.
capify .
esto ejecutandocapify .
... Lo más probable es que tengas cuidado con el railscast en el despliegue de Capistrano - Siempre que se use configurado como:
schedule.rb
every 1.day, :at => ''4:30 am'' do
runner ''Rails.cache.clear''
end
Realmente no creo que rake "pages_controller:home
funcione, a menos que esto sea algo que ya hayas creado en otro lugar. Además estoy asumiendo que estás almacenando en caché esta página, y es por eso que necesitas actualizar el caché.
Finalmente, está configurando su entorno para el desarrollo, lo que me hace pensar que no está implementando esto, sino que simplemente desea restablecer la página de inicio en caché ... Así que simplemente ejecute la rake cache:clear
He usado cron job pero lo ejecuto como tarea de rake, por favor, puedes probarlo
every 3.minutes do
set :environment, ''development''
rake "daily",:output => {:error => ''error.log'', :standard => ''cron.log''}
end
Y mi tarea es como
require ''rubygems''
task :daily => :environment do
puts "i am fine"
# do your code
end
Si la tarea cron se ejecuta correctamente, no habrá nada en cron.log. De lo contrario, le mostrará si
se produce un error y este archivo se generará en el directorio raíz de su aplicación.
intentalo..