ho questo compito Capistrano:Rails 3.2.1, risorse precompilate due volte sulla distribuzione?
namespace :deploy do
task :precompile, :role => :app do
run "cd #{release_path}/ && RAILS_ENV=staging bundle exec rake assets:precompile --trace"
end
end
after "deploy:finalize_update", "deploy:precompile"
So che c'è load 'deploy/assets'
ma sto cercando di capire cosa sta succedendo qui.
Sto distribuzione su un Amazon EC2 m1.small esempio, che a quanto pare ha costantemente il 50% della CPU rubare tempo, verificata con top
. Questo porta ad un aumento del tempo per la compilazione beni, ma hanno uno sguardo a questo:
[23.21.xxx.xx] rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell 'ruby-1.9.3-p125' -c 'cd /home/ubuntu/apps/myapp-rails/releases/20120227020245/ && RAILS_ENV=staging bundle exec rake assets:precompile --trace'
** [out :: 23.21.xxx.xx] ** Invoke assets:precompile (first_time)
** [out :: 23.21.xxx.xx] ** Execute assets:precompile
** [out :: 23.21.xxx.xx] /home/ubuntu/.rvm/rubies/ruby-1.9.3-p125/bin/ruby /home/ubuntu/apps/myapp-rails/shared/bundle/ruby/1.9.1/bin/rake assets:precompile:all RAILS_ENV=staging RAILS_GROUPS=assets --trace
** [out :: 23.21.xxx.xx] ** Invoke assets:precompile:all (first_time)
** [out :: 23.21.xxx.xx] ** Execute assets:precompile:all
** [out :: 23.21.xxx.xx] ** Invoke assets:precompile:primary (first_time)
** [out :: 23.21.xxx.xx] ** Invoke assets:environment (first_time)
** [out :: 23.21.xxx.xx] ** Execute assets:environment
** [out :: 23.21.xxx.xx] ** Invoke environment (first_time)
** [out :: 23.21.xxx.xx] ** Execute environment
** [out :: 23.21.xxx.xx] ** Invoke tmp:cache:clear (first_time)
** [out :: 23.21.xxx.xx] ** Execute tmp:cache:clear
** [out :: 23.21.xxx.xx] ** Execute assets:precompile:primary
** [out :: 23.21.xxx.xx] ** Invoke assets:precompile:nondigest (first_time)
** [out :: 23.21.xxx.xx] ** Invoke assets:environment (first_time)
** [out :: 23.21.xxx.xx] ** Execute assets:environment
** [out :: 23.21.xxx.xx] ** Invoke environment (first_time)
** [out :: 23.21.xxx.xx] ** Execute environment
** [out :: 23.21.xxx.xx] ** Invoke tmp:cache:clear (first_time)
** [out :: 23.21.xxx.xx] ** Execute tmp:cache:clear
** [out :: 23.21.xxx.xx] ** Execute assets:precompile:nondigest
command finished in 958131ms
A parte il folle quantità di tempo speso per precompilare le attività per qualche motivo posso dire che li sta compilando due volte. Perché?
Sto usando Rails 3.2.1. Qualcuno può dare qualche idea su cosa sta succedendo qui? È destinato?
staging.rb
# Compress JavaScripts and CSS
config.assets.compress = true
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
# Generate digests for assets URLs
config.assets.digest = true
ho detto nel mio domanda che so di questo compito Capistrano. L'ho spento perché 1) ho problemi con esso e sprite 2) volevo verificare chiaramente cosa sta succedendo. – kain
Ho aggiornato la mia risposta con qualche altro dettaglio. – James
grazie; anche se eseguire un compito per ogni "situazione" mi sembra sciocco, perché i binari della terra non possono controllare le opzioni e agire di conseguenza eseguendo solo un compito è al di là di me ... se hai altre informazioni su cosa digerire, non più, o perché qualcuno vorrebbe non digerire e roba, per favore condividi. – kain