2010-07-08 9 views

Respuesta

11

¡En UNIX/Linux, cron jobs son tus amigos! En Windows, hay Task Scheduler.

ACTUALIZACIÓN
Para hacerlo desde el código Java, ya que esta es una petición GET sencilla, se puede usar la biblioteca HTTP Client. Ver this tutorial sobre el uso de GetMethod.

Si necesita enviar otras solicitudes mediante programación a Solr, probablemente debería utilizar Solrj library. Permite enviar todos los comandos básicos a Solr hormiga en que puede configurarse para acceder a cualquier controlador de 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

Gracias Pascal. Mi pregunta fue diferente Necesito activar el comando http: // : /solr/dataimport? Command = full-import para la operación de indexación. ¿Cómo puedo hacer eso usando una clase java? (¿en contra de escribir el comando en una ventana del navegador?) – Eldo

+0

ver mis actualizaciones en la respuesta –

+4

Además, si lo está haciendo desde cron, una wget http://127.0.0.1:8983/solr/dataimport?command=full-import funciona muy bien! –

7

que era capaz de hacer que funcione siguiendo los pasos:

  1. Crear clases ApplicationListener, HTTPPostScheduler y SolrDataImportProperties (código fuente listado en http://wiki.apache.org/solr/DataImportHandler#Scheduling). Creo que estas clases aún no se han comprometido.

  2. Añadir la siguiente oyente archivo web.xml Solr:

    <listener> 
        <listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> 
    </listener> 
    
  3. Configurar dataimport.properties según las instrucciones en la página wiki.

1

Hay un nuevo parche de Esteve Fernández que hace que el conjunto funcione en Unix/Linux: https://issues.apache.org/jira/browse/SOLR-2305

@Eldo Si usted va a necesitar más ayuda en la construcción de su propio JAR apenas caer una pregunta aquí ...

5

sencillo añadir esta línea a su crontab con crontab -e comando:

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

esto importará completa cada 30 minutos. Reemplace <solr_host> y <core_name> con su configuración

1

Esto es un poco antiguo, pero creé una aplicación Windows WPF y un servicio para manejar esto, como usar trabajos CRON y el Programador de tareas es un poco difícil de mantener si tiene muchos núcleos/entornos.

https://github.com/systemidx/SolrScheduler

Es, básicamente, acaba de caer en un archivo JSON en una carpeta especificada y se va a utilizar un cliente REST para emitir los comandos a Solr.

1

Podemos usar Quartz para hacer eso, que es como el crontab en linux. Pero básicamente, el TimerTask incrustado en jdk es suficiente para ti.

Cuestiones relacionadas