2012-02-01 7 views
5

私たちのsolrインデックスは、DataImportHandlerのフルインポートによって必要に応じて、スケジュールに従ってリフレッシュされます。さまざまな理由でインポートが失敗する場合がいくつかありました。Solr - DataImportHandlerからのインポートに失敗した旨の通知を受け取るにはどうしたらいいですか?

DataImportHandlerでインポートを実行中にエラーが発生したという通知(電子メールが望ましい場合があります)を受け取る方法はありますか?

答えて

1

ある程度の成功を収めているEventListenerを使用しようとした後、我々は我々の選択肢を検討し、最終的にはより少なくより確実なアプローチに落ち着きました。

Solrを拡張する代わりに、私たちは既存の監視インフラストラクチャ(主にNagiosを使用)を使ってdataimporthandlerの状態をポーリングしています。毎分実行され、インポートが失敗したことを検出した場合は、通常のチャネルを介して警告します。これは良いことですが、ジョブがまったく実行されていないかどうかを検出することはできません。

全体的にはこれで十分です。既存のインフラストラクチャを使用し、Solrの中心的な機能に限定して取り組んでいます。私はSolr 4.0へのアップグレードを最終的に行うときにこれを再訪する予定です。

7

簡単な設定ソリューションはありません。しかし、代替案が存在する場合、ほとんど仕事をしなくてはならないかもしれません。

イベントEventListenerを受信するために、EventListenerをdata-configにDIHで登録できます。

Wiki

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

あなたEventListenerあなたはDataImportHandlerのほとんどへのアクセスを提供Contextオブジェクト、&イベント統計のオブジェクトにアクセスすることができます参照してください。例えば

、あなたのcom.foo.EndEventListenerはあなたが# of DocsFailed# of DocsSkippedなStaisticsを取得するためにContextオブジェクトハンドルを使用することができonImportEndイベント... Contextは、DIHの内部の多くを公開する貴重なオブジェクトです。この情報を使って何をする必要があるのか​​は、イベントリスナーの責任です。

おそらく注意点ですが、DIH通知はほとんどの事実の後にイベントが通知されることはありません。DIHがリスナーに通知するためにインポートプロセスが完了するのを待たなければなりません。回避策。

関連する問題