2010-10-13 14 views
5

No he usado cron antes, así que no puedo estar seguro de haberlo hecho bien. Las tareas que quiero automatizar no parecen estar ejecutándose. Hice estos pasos en el terminal: GemaAyuda con la gema "Whenever" en Ruby para las tareas cron

  1. sudo instalar cada vez que
  2. cambio en el directorio de la aplicación
  3. wheneverize. (Esto creó el archivo schedule.rb)
  4. He añadido este código para schedule.rb:

    every 10.minutes do 
        runner "User.vote", environment => "development" 
    end 
    
    
    every :hour do 
        runner "Digest.rss", :environment => "development" 
    end 
    
  5. que añade este código para deploy.rb:

    after "deploy:symlink", "deploy:update_crontab" 
    
    
    namespace :deploy do 
        desc "Update the crontab file" 
        task :update_crontab, :roles => :db do 
        run "cd #{current_path} && whenever --update-crontab #{application}" 
        end 
    end 
    
  6. Hice esto en el terminal: cada vez que

  7. volvió:

    @hourly cd /Users/RedApple/S && script/runner -e development 'Digest.rss' 
    
    
    0,10,20,30,40,50 * * * * cd /Users/RedApple/S && script/runner -e development 'User.vote' 
    
  8. ejecución de estos comandos de forma individual en las obras de terminal:

    script/runner -e development 'Digest.rss' 
    script/runner -e development 'User.vote' 
    
  9. Ahora ejecuta un servidor local en el modo de desarrollo, escritura/servidor, no veo ninguna evidencia de que el código está siendo realmente plazo. ¿Hay algún paso que no hice? No hay guías para "Siempre" que muestren algo más que lo que hice.

Respuesta

11

Soy nuevo siempre así, pero creo que sólo corriendo

whenever 

sólo te muestra lo que el trabajo de cron que se crea se verá así. Con el fin de escribir realmente el trabajo de cron (para hacerla activa), es necesario ejecutar:

whenever -w 

Esto le dará una lista completa de opciones:

whenever -h 
+1

Tenga en cuenta que cada vez que -i es una poco más seguro que cuando -w, que sobrescribirá todo tu crontab. El primero solo actualiza las entradas en crontab relacionadas con cada vez, dejando intactas las demás entradas. Siempre puede verificar que su crontab se haya actualizado correctamente ejecutando crontab -l. – Ross

Cuestiones relacionadas