2012-02-01 9 views
5

I nostri indici solr vengono aggiornati in base a una pianificazione, nonché arbitrariamente, se necessario, mediante un'importazione completa DataImportHandler. Abbiamo avuto diverse occasioni in cui l'importazione non riesce per vari motivi.Solr - Come posso ricevere notifiche di importazioni non riuscite dal mio DataImportHandler?

Come posso ricevere una notifica (preferibilmente e-mail) che si è verificato un errore durante l'esecuzione di un'importazione con DataImportHandler?

risposta

1

Dopo aver tentato di utilizzare un EventListener con un certo successo abbiamo rivisto le nostre opzioni e, infine optato per un approccio meno-che-infallibile.

Invece di estendere Solr, stiamo utilizzando la nostra infrastruttura di monitoraggio esistente (principalmente con Nagios) per il polling dello stato dello dataimporthandler. Funziona ogni minuto e avvisa tramite i nostri canali normali se rileva un'importazione non riuscita. Questo è buono, ma non riesce ancora a rilevare se i lavori non sono affatto in esecuzione - e ha mancato qualche altro caso d'angolo.

Nel complesso, tuttavia, per ora funziona abbastanza bene. Utilizza la nostra infrastruttura esistente e mantiene i nostri sforzi attorno a Solr limitati alle sue funzionalità principali. Ci tornerò sicuramente alla mente quando finalmente effettueremo l'aggiornamento a Solr 4.0.

7

Non esiste una soluzione di configurazione semplice. Ma esiste un'alternativa potresti dover fare un po 'di lavoro.

È possibile registrare EventListener con DIH in data-config per ascoltare gli eventi EventListener.

consultare Wiki

<dataConfig> 
    <document onImportStart ="com.foo.StartEventListener" onImportEnd="com.foo.EndEventListener"> 
    .... 
    </document> 
</dataConfig> 

tuo EventListener dà accesso alle Context oggetto, che consente l'accesso alla maggior parte delle DataImportHandler Oggetti & Event Statistics.

Per esempio, onImportEnd caso in cui il com.foo.EndEventListener si potrebbe usare Context maniglia oggetto per ottenere Staistics quali # of DocsSkipped, # of DocsFailed ... Context è un oggetto prezioso che espone molti interni DIH. Spetta all'ascoltatore dell'evento fare ciò che deve fare con queste informazioni.

Forse un avvertimento, la notifica DIH è per lo più dopo il fatto, non ti verrà notificato degli eventi come accade, devi attendere il completamento del processo di importazione per DIH per notificare l'ascoltatore o potrebbe esserci un soluzione alternativa.

Problemi correlati