Tôi đang làm việc với elasticsearch-js (NodeJS) và mọi thứ chỉ hoạt động tốt miễn là ElasticSearch đang chạy. Tuy nhiên, tôi muốn biết rằng kết nối của tôi vẫn còn hoạt động trước khi thử gọi một trong các phương thức của máy khách. Tôi đang làm việc theo một chút thời trang đồng bộ, nhưng chỉ với mục đích kiểm tra hiệu suất (ví dụ: kiểm tra xem tôi có chỉ mục trống để làm việc, nhập dữ liệu, truy vấn dữ liệu). Nhìn vào một đoạn như thế này:Làm thế nào để kiểm tra xem máy khách ElasticSearch có được kết nối không?
var elasticClient = new elasticsearch.Client({
host: ((options.host || 'localhost') + ':' + (options.port || '9200'))
});
// Note, I already have promise handling implemented, omitting it for brevity though
var promise = elasticClient.indices.delete({index: "_all"});
/// ...
Có một số cơ chế để gửi ở trên cấu hình client thất bại nhanh chóng, hoặc một số bài kiểm tra tôi có thể thực hiện trên máy khách để chắc chắn rằng nó đang mở trước khi gọi delete
?
Cập nhật: 2015-05-22
Tôi không chắc chắn nếu điều này là đúng, nhưng có lẽ cố gắng để có được số liệu thống kê khách hàng là hợp lý?
var getStats = elasticClient.nodes.stats();
getStats.then(function(o){
console.log(o);
})
.catch(function(e){
console.log(e);
throw e;
});
Qua gỡ lỗi nút, tôi thấy lời hứa bị từ chối khi Tìm kiếm đàn hồi không truy cập được: "Error: No Living connections"
. Khi nó kết nối, o
trong trình xử lý sau đó của tôi dường như có thông tin chi tiết về trạng thái kết nối. Cách tiếp cận này có chính xác không hoặc có cách nào ưu tiên để kiểm tra khả năng kết nối không?
Đây là [vấn đề đã biết] (https://github.com/elastic/elasticsearch-js/issues/196) chưa được giải quyết. – Val