2010-07-08 2 views

답변

11

UNIX/Linux의 경우 cron jobs은 (는) 친구입니다! Windows의 경우 Task Scheduler입니다. 이 간단한 GET 요청이기 때문에

UPDATE는
, 자바 코드에서 작업을 수행하려면, 당신은 HTTP Client 라이브러리를 사용할 수 있습니다. GetMethod 사용에 대해서는 this tutorial을 참조하십시오.

프로그래밍 방식으로 Solr에 다른 요청을 보내야 할 경우 Solrj library을 사용해야합니다. 어떤 SOLR 핸들러에 액세스하도록 구성 할 수 있습니다 SOLR 개미에 대한 모든 기본적인 명령을 보낼 수 있습니다 :

CommonsHttpSolrServer server = new CommonsHttpSolrServer("http://localhost:8983/solr"); 
ModifiableSolrParams params = new ModifiableSolrParams(); 
params.set("command", "full-import"); 
QueryRequest request = new QueryRequest(params); 
request.setPath("/dataimport"); 
server.request(request); 
+0

감사합니다. 내 질문이 달랐다. 인덱싱 작업에 대해 http : // : /solr/dataimport? command = full-import 명령을 실행해야합니다. Java 클래스를 사용하여 어떻게 할 수 있습니까? (브라우저 창에서 명령을 입력하는 것과 반대?) – Eldo

+0

답변에서 내 업데이 트를 참조하십시오 –

+4

또한, 당신이 cron에서 일하는 경우 wget http://127.0.0.1:8983/solr/dataimport?command=full-import works great! –

7

내가이 단계에 따라 작동하게 할 수 있었다 : 만약 ApplicationListener를

  1. 클래스를 작성, HTTPPostScheduler 및 SolrDataImportProperties (소스 코드는 http://wiki.apache.org/solr/DataImportHandler#Scheduling에 나와 있습니다). 나는이 클래스들이 아직 커밋되지 않았다고 믿는다.

  2. 는 SOLR의 web.xml 파일에 다음 리스너를 추가

    <listener> 
        <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> 
    </listener> 
    
  3. 구성 dataimport.properties를 위키 페이지의 지침에 따라.

1

유닉스/리눅스에서 모든 것이 작동하게 에스테 페르난데스에 의해 새로운 패치있다 : https://issues.apache.org/jira/browse/SOLR-2305

@Eldo 당신은 단지 질문을 드롭 자신의 JAR 구축에 도움이 더 필요려고하는 경우 여기 ...

5

단순 crontab -e 명령으로 crontab을이 행을 추가

0,30 * * * * /usr/bin/wget http://<solr_host>:8983/solr/<core_name>/dataimport?command=full-import 

이 의지 전체 가져 오기 매 30 분. <solr_host><core_name>을 구성으로 바꾸십시오.

1

이것은 약간 오래되었지만 CRON 작업과 작업 스케줄러를 사용하는 경우 Windows WPF 응용 프로그램과 서비스를 작성하여 처리하기가 어려울 수 있습니다. 코어/환경.

https://github.com/systemidx/SolrScheduler

당신은 기본적으로 그냥 지정된 폴더에 JSON 파일에 드롭하고 SOLR에 명령을 실행하기 위해 REST 클라이언트를 사용합니다.

1

우리는 Quartz를 사용하여이를 수행 할 수 있습니다. 이는 Linux의 crontab과 같습니다. 하지만 기본적으로 jdk에 포함 된 TimerTask로 충분합니다.