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
6
A
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
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.
È possibile eseguire le attività che si trovano nello scheduler senza attendere il passaggio del tempo? –
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