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'
Foi útil?

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!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top