2012-05-29 2 views
3

Я использую мышление sphinx для поиска. Он ищет подходящее, но проблема была всякий раз, когда я добавляю новые записи, я должен делать rake thinking_sphinx: index вручную. Поэтому для автоматического запуска я использую всякий раз, когда gem с хрон, но до сих пор его не происходит автоматически, либо я должен сделатьcron с всякий раз, когда gem не работает

грабли thinking_sphinx: индекс

или

когда -w для создания индекса автоматически

Ниже приведен код конфигурации/schedule.rb:

every 10.minutes do 
    rake "thinking_sphinx:index", :environment => :development 
end 

every :reboot do 
    rake "thinking_sphinx:start",:environment => :development 
end 

, когда я действительно CRONTAB -l я получаю следующее:

# Begin Whenever generated tasks for: store 
@reboot /bin/bash -l -c 'cd /home/user/newsvn/alumnicell && RAILS_ENV=development bundle exec rake thinking_sphinx:start --silent' 

0,10,20,30,40,50 * * * * /bin/bash -l -c 'cd /home/user/newsvn/alumnicell && RAILS_ENV=development bundle exec rake thinking_sphinx:index --silent' 

# End Whenever generated tasks for: store 

Что и где проблема, что это не работает?

Также я изменил среду на development.by по умолчанию это было production.What разница в этих 2?

ответ

0

Вы можете назначить файл журнала для отслеживания ошибок, а затем опубликовать его здесь.

Также советую установить :environment глобально.

Попробуйте этот код:

set :environment, :development 
set :output, 'tmp/whenever.log' 

every 10.minutes do 
    rake "thinking_sphinx:index" 
end 

every :reboot do 
    rake "thinking_sphinx:start" 
end 
0

Я советую вам использовать индексы мышления дельты Сфинкса вместо того, чтобы использовать всякий раз, когда хроны рабочих мест перестраивать мышление сфинкса каждые 10 минут.

Как это описано here вы должны просто добавить булев столбец delta к модели, установите set_property :delta => true в вашем define_index блоке и запустить rake ts:rebuild

Вот и все.