2010-08-05 2 views
0

그래서 매일 아침 내 서버를 부팅, 나는 IRB에 대한 bash 별명을 설정 하시겠습니까?

>> 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' 
+0

왜 스크립트에 넣고 cron에서 호출하지 않습니까? –

+0

왜 쉘 스크립트를 작성하지 않습니까? 앨리어스는 단순한 작업에는 적합하지만이 작업에는 적합하지 않습니다. – tokland

답변

1

어쩌면 고통을 덜어 줄 수 있을까요?

#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 
+0

script/console을 호출하지 않아도 해당 명령이 작동합니까? – Trip

+0

** reindex (first_time) 호출 ** 다시 색인 실행 갈퀴가 중단되었습니다! 초기화되지 않은 상수 조직 – Trip

+0

굉장! 업데이트 주셔서 감사합니다! 작품은 현재 – Trip

1

이 나의 첫번째 StackOverflow의 게시물입니다 그리고 그것은 오래된 질문이지만, 내가 어떻게 든 기여할 수있는 느낌 : D SOLR 지수는 주기적으로 매우 비싼 작업입니다 재건 , 프로덕션에서 이런 일을하지 말아야합니다!

auto_commit_after_request = true

이 인덱스 마다 새로운를 업데이트 흑점을 알려드립니다 편집 당신이 sunspot.yml하고 줄을 추가 -

1 : 당신이 최선의 세 가지 방법으로 달성 할 수 찾고 있습니다 모델 항목이 저장 (또는 삭제)됩니다. 이렇게하면 색인이 업데이트되지만 비용이 많이 듭니다.

2 -이

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

이 훨씬 저렴합니다 모든 모델 업데이트 후 커밋하는 것보다처럼 (A DelayedJob 노동자에에 크론 실행할 수 있습니다) 갈퀴 작업을 만들지 만, 곰 이것은 색인에 최종 일관성 문제를 야기한다는 것을 염두에 두자. 추가는 괜찮지 만 삭제에는 지저분 할 수있다. 그것은 색인에 고아 항목을 생성 할 것이다. 이것은 또한이 문제를 해결하는 세 번째 방법에 대한 문제입니다. ->

3 -기능을 maxTime으로 설정하여 커밋 사이의 임의의 간격 (밀리 초 단위로 시간 사용)을 설정하십시오. 대부분의 응용 프로그램에서는 5 분이 좋지만 직접 테스트해야합니다.

희망이 도움이됩니다.

관련 문제