Impostazione alias bash per IRB?
-
26-09-2019 - |
Domanda
Così ogni mattina per avviare il mio assistente, ho bisogno di fare le seguenti operazioni ..
>> sunspot-solr stop
>> sunspot-solr start
>> script/console
>> Organization.reindex
>> Event.reindex
>> Deal.reindex
>> exit
>> script/server
C'è un modo posso fare una scorciatoia nel mio ~ / .profile come alias per eseguire tutto questo per me senza di me scrivendo tutti i giorni?
Ti piace questa anche se non funziona?
alias blam='cur && sunspot-solr stop && sunspot-solr start && script/console && Organization.reindex && Event.reindex && Deal.reindex && exit && script/server'
Soluzione
Forse questo faciliterà alcuno del dolore?
#Rakefile
desc "Reindex the organizations, events, and deals Solr indexes."
task :reindex => :environment do
Organization.reindex
Event.reindex
Deal.reindex
end
Poi ogni corsa mattutina
> sunspot-solr stop
> sunspot-solr start
> rake reindex
> script/server
Altri suggerimenti
Questo è il mio primo post StackOverflow ed è una questione vecchia, ma sentivo di poter contribuire in qualche modo: D Ricostruire l'indice Solr periodicamente è un compito molto costoso, si dovrebbe evitare di fare cose come questa in produzione! Quello che state cercando può essere realizzato meglio in tre modi:
1 - modifica si sunspot.yml e aggiungere la riga
auto_commit_after_request = true
Questo dirà macchie solari per aggiornare l'indice ogni una nuova voce di modello viene salvato (o eliminato). Ciò manterrà il vostro indice aggiornato, ma può essere costoso.
2 - creare un'attività rake (può essere eseguito con cron su in un operaio DelayedJob) come questo
task :update_index => :environment do
Sunspot.commit_if_dirty
end
Questo è molto meno costoso di fare un commit dopo ogni aggiornamento del modello, ma tenere a mente che questo introduce il problema della eventuale consistenza al vostro indice, che va bene per aggiunge, ma può essere brutto per eliminazioni: esso genererà orfano voci nell'indice. Questo è anche un problema con il terzo modo per risolvere questo problema ->
3 - Modificare il file solrconfig.xml e impostare la funzione autoCommit
con un maxTime
un intervallo arbitraria tra commit (ricordarsi di usare i tempi in millisecondi). 5 minuti sarebbe bello per la maggior parte delle applicazioni, ma si dovrebbe provare da soli.
Spero che questo aiuti!