Definindo aliases bash para IRB?
-
26-09-2019 - |
Pergunta
Então, todas as manhãs para inicializar meu servidor, preciso realizar as seguintes tarefas.
>> sunspot-solr stop
>> sunspot-solr start
>> script/console
>> Organization.reindex
>> Event.reindex
>> Deal.reindex
>> exit
>> script/server
Existe alguma maneira de fazer um atalho no meu ~/.Profile como um pseudônimo de executar tudo isso para mim sem que eu digite -o todos os dias?
Assim, embora não funcione?
alias blam='cur && sunspot-solr stop && sunspot-solr start && script/console && Organization.reindex && Event.reindex && Deal.reindex && exit && script/server'
Solução
Talvez isso alivie parte da dor?
#Rakefile
desc "Reindex the organizations, events, and deals Solr indexes."
task :reindex => :environment do
Organization.reindex
Event.reindex
Deal.reindex
end
Então todas as manhãs correm
> sunspot-solr stop
> sunspot-solr start
> rake reindex
> script/server
Outras dicas
Este é o meu primeiro post Stackoverflow e é uma pergunta antiga, mas senti que poderia contribuir de alguma forma: D reconstruindo o índice Solr periodicamente é uma tarefa muito cara, você deve evitar fazer coisas assim na produção! O que você está procurando pode ser melhor alcançado de três maneiras:
1 - edite seu sol sunspot.yml e adicione a linha
auto_commit_after_request = true
Isso dirá a mancha solar para atualizar o índice toda vez Uma nova entrada de modelo é salva (ou excluída). Isso manterá seu índice atualizado, mas pode ser caro.
2 - Crie uma tarefa de ancinho (pode ser executada com Cron em um trabalhador de jobo
task :update_index => :environment do
Sunspot.commit_if_dirty
end
Isso é muito mais barato do que fazer um compromisso após cada atualização do modelo, mas lembre -se de que isso introduz o problema de eventual consistência com o seu índice, o que é bom para adicionar, mas pode ser desagradável para excluir: gerará entradas órfãs em seu índice . Este também é um problema com a terceira maneira de resolver esse problema ->
3 - Edite seu arquivo Solrconfig.xml e defina o autoCommit
recurso com um maxTime
Um intervalo arbitrário entre os compromissos (lembre -se de usar os tempos em milissegundos). 5 minutos seriam bons para a maioria das aplicações, mas você deve testá -lo você mesmo.
Espero que isto ajude!