2013-06-28 20 views
6

Utilizzo Ogniqualvolta gem è in grado di eseguire un'attività rake. Quando eseguo l'attività di rake viene eseguito in ambiente di sviluppo, ma quando viene eseguito in un orario pianificato fa riferimento a un ambiente di produzione. Come posso forzare l'esecuzione di un'attività di rake programmata nell'ambiente di sviluppo. Come ho capito, dovrò usare la variabile RAILS_ENV, ma non riesco a capire dove metterlo. Penso, non ha nulla a che fare con la gemma di sempre qui.come forzare l'esecuzione del task rake in ambiente di sviluppo utilizzando Whenever gem

risposta

6

In schedule.rb, è possibile specificare l'ambiente che ci piace Operazioni pianificate da eseguire in:

# config/schedule.rb 
set :environment, 'development' 

In alternativa, è possibile impostare l'ambiente in base al luogo di lavoro:

# config/schedule.rb 
every 1.day do 
    runner 'Model.task', :environment => 'development' 
    runner 'Model.task', :environment => 'production' 
end 
+0

È possibile eseguire le attività che si trovano nello scheduler senza attendere il passaggio del tempo? –

+1

Stai chiedendo se è possibile eseguire le attività manualmente (ad esempio all'esterno dello scheduler)? Se è così, sì. Tuttavia, se stai cercando di utilizzare la gemma Whenever, dovrai necessariamente impostare una sorta di intervallo di tempo: AFAIK, l'intervallo minimo è un secondo. Altrimenti, eseguiresti continuamente e simultaneamente i tuoi compiti ... che in realtà non è possibile/fattibile. – zeantsoi

12

In ogni guscio bash tipo di solito si può ignorare l'ambiente quando lo si esegue:

RAILS_ENV=development rake task:name... 

È possibile anche scrivere un piccolo script per fare questo per voi:

#!/bin/sh 

export RAILS_ENV=development 

rake task:name... 

Questo può essere adattato per altri gusci come richiesto.