Pregunta

Así que cada mañana para arrancar mi servidor, tengo que hacer las siguientes tareas ..

>> sunspot-solr stop
>> sunspot-solr start
>> script/console
>> Organization.reindex
>> Event.reindex
>> Deal.reindex
>> exit
>> script/server

¿Hay alguna manera de crear un acceso directo en mi ~ / .profile como un alias para llevar a cabo todo esto por mí sin escribir todos los días?

Al igual que esto, sin embargo no lo hace el trabajo?

alias blam='cur && sunspot-solr stop && sunspot-solr start && script/console && Organization.reindex && Event.reindex && Deal.reindex && exit && script/server'
¿Fue útil?

Solución

Tal vez esto va a aliviar un poco el dolor?

#Rakefile
desc "Reindex the organizations, events, and deals Solr indexes."
task :reindex => :environment do
  Organization.reindex
  Event.reindex
  Deal.reindex
end

A continuación, todas las mañanas de ejecución

> sunspot-solr stop
> sunspot-solr start
> rake reindex
> script/server

Otros consejos

Este es mi primer post StackOverflow y es una cuestión de edad, pero sentí que podía contribuir de alguna manera: D La reconstrucción del índice Solr es periódicamente una tarea muy costosa, se debe evitar hacer cosas como esta en la producción! Lo que busca puede ser mejor logrado de tres maneras:

1 - edición que sunspot.yml y agregue la línea

auto_commit_after_request = true

Esto le indicará a la mancha solar para actualizar el índice cada una nueva entrada modelo se guarda (o eliminado). Esto mantendrá su índice actualizado pero puede ser costoso.

2 - crear una tarea rake (se puede ejecutar con cron en un trabajador en DelayedJob) como esto

task :update_index => :environment do
Sunspot.commit_if_dirty
end

Esto es mucho menos caro que hacerlo de una confirmación después de cada actualización del modelo, pero hay que tener en cuenta que se introduce el problema de consistencia eventual a su índice, que está muy bien para agrega, pero puede ser desagradable para eliminaciones: Se generará huérfano entradas en su índice. Este es también un problema con la tercera forma de resolver este problema ->

3 - editar su archivo solrconfig.xml y establecer la función autoCommit con un maxTime un intervalo arbitraria entre confirmaciones (recuerde usar tiempos en milisegundos). 5 minutos sería bueno para la mayoría de las aplicaciones, pero se debe probar esto por sí mismo.

Espero que esto ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top