Вопрос

Поэтому каждое утро, чтобы загрузить мой сервер, мне нужно сделать следующие задачи.

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

Есть ли способ, которым я могу сделать ярлык в моем ~ / .profile как псевдоним, чтобы выполнить все это для меня без меня, набрав его каждый день?

Как это, хотя это не работает?

alias blam='cur && sunspot-solr stop && sunspot-solr start && script/console && Organization.reindex && Event.reindex && Deal.reindex && exit && script/server'
Это было полезно?

Решение

Может быть, это ослабит некоторые боли?

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

Тогда каждое утро беги

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

Другие советы

Это мой первый столбец Stackoverflow, и это старый вопрос, но я чувствовал, что смогу вносить вклад как-то: D Восстановление индекса Solr периодически является очень дорогой задачей, вам следует избегать делать такие вещи в производстве! То, что вы ищете, могут быть наилучшим образом достигнуты тремя способами:

1 - Отредактируйте вас Sunspot.yml и добавьте строку

auto_commit_after_request = true

Это скажет Sunspot для обновления индекса каждый раз Новая модель ввода сохраняется (или удалена). Это будет держать ваш индекс обновляться, но может быть дорогим.

2 - Создать задержку с граблями (можно бежать с CRON в работник задержки), как это

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

Это гораздо менее дороги, чем делать коммит после каждого обновления модели, но имейте в виду, что это представляет проблему возможной согласованности к вашему индексу, что в порядке для добавок, но может быть неприятным для удаления: он будет генерировать записи силовых веществ в вашем индексе. Отказ Это также проблема с третьим способом решить эту проблему ->

3 - Отредактируйте файл solrconfig.xml и установите autoCommit особенность с А. maxTime Произвольный интервал между коммитами (не забудьте использовать время в милисекунде). 5 минут было бы неплохо для большинства приложений, но вы должны проверить это самостоятельно.

Надеюсь это поможет!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top