3

タイプのマッピングを削除しようとしていますが、その前に、以下のコードのようにタイプが存在するかどうかを確認しています:

def delete_mapping(self, doc_type):
    if self.elasticsearch.indices.exists_type(index='my_index', doc_type=doc_type):
        self.elasticsearch.indices.delete_mapping(index='my_index', doc_type=doc_type)

タイプが存在するかどうかをチェックする行は、存在しないタイプであっても true を返します。そのため、型のマッピングを削除しようとすると、次の行で TypeMissingException が発生します。

ipython コンソールでコードを実行すると、問題はないように見えますが、コードが非同期タスクの一部として実行されると問題が発生します。これは毎回発生するわけではなく、QA サーバーと運用サーバーでランダムに発生します。これら 2 つの環境は、elasticsearch 用に 2 つのノードがある唯一の環境であり、他の環境では問題は見られません。

私は Python 2.7、elasticsearch-py 0.4.4、elasticsearch バージョン 1.0.1 を 64 ビット Linux 上の 2 つのノードで使用しています。コードは、定期的なセロリ タスクとして実行されます。

編集:問題に詳細を追加しました。

4

0 に答える 0