2011-12-23 9 views
36

Ho creato un'app che usa la gemma When. La gemma crea lavori cron. L'ho fatto funzionare localmente ma non riesco a farlo funzionare su heroku cedar. Qual è il comando per fare questo?"Ogniqualvolta" gem esegue i lavori cron su Heroku

esecuzione:

heroku run whenever --update-crontab job1 

non funziona

risposta

68

Risposta breve: utilizzare lo scheduler add-on: http://addons.heroku.com/scheduler

Risposta lunga: Quando non Heroku esegue, abbiamo

  1. spin up a dyno
  2. mettere il vostro codice su di esso
  3. eseguire il vostro comando, attendere che finisca
  4. buttare al banco via

Tutte le modifiche apportate al crontab sarebbe stato immediatamente gettato via. Tutto è effimero, non è possibile modificare i file su heroku, basta premere il nuovo codice.

+2

Risposta breve; ha fatto il trucco per me. – RedRory

+0

che cosa dovresti fare per le attività di lunga durata? (richiede ore per l'esecuzione) – slykat

+1

questo va bene, avrai 24 ore per completarlo – Will

3

È necessario aggiungere Heroku Scheduler addon.

È possibile aggiungere direttamente dal vostro cruscotto o utilizzando i seguenti comandi:

  1. installare il add-on:

    heroku addons:create scheduler:standard 
    
  2. creare un'attività rastrello in lib/tasks

    # lib/tasks/scheduler.rake 
    task :send_reminders => :environment do 
        User.send_reminders 
    end 
    
  3. Pianifica il lavoro

    • Visita Heroku Dashboard
    • Aprire il app
    • Selezionare Scheduler da add-ons lista
    • Clicca Aggiungi Job, immettere un'attività e selezionare la frequenza.

      ad es. Aggiungi rake send_reminders, selezionare "Daily" e "00:00" per inviare promemoria ogni giorno a mezzanotte.

Heroku add cron task

Problemi correlati