2016-04-01 27 views
2

Bir MeteorJS uygulamasında JavaScript istemcisi aracılığıyla bağlanabildiğim AWS'de çalışan bir ElasticSearch örneğim var. Eşlemelerin oluşturulması (endeksler ve analizörler) veya eşleştirmelerin güncellenmesi sorunu yaşanmadı.ElasticSearch AWS isteği Zaman Aşımı

Sorun, örneğe bir dizin, güncelleştirme veya silme isteği olduğunda ortaya çıkar. 200'den fazla istek üzerine hizmet verdikten sonra, ElasticSearch örneği, kod 408 ile istek zaman aşımı hatası atmaya başlar. Başlangıçta, birden fazla tek isteğin sırayla yapıldığını düşündüm, bu yüzden toplu itme yapmaya karar verdim. Aşağıda toplu itme isteği için snippet var.

var bulk = SearchService.ElasticQueue.splice(0, 1000); 
console.log('Size: ', bulk.length); 
if (bulk.length > 0) { 
    EsClient.bulk({ 
    body: bulk 
    }, function (error, response) { 
    if (!error) { 
     console.log(response); 
    } else { 
     console.log(error); 
    } 
    }); 
} 

SearchService.ElasticQueue kuyruğunun şeklidir ve bir cron işi ondan veri almaya ve toplu istekleri çalıştırmak için sık çalışır. Ayrıca toplu istekte bulunan belge sayısını azaltmayı ve bağlantı yapılandırmasında zaman aşımı süresini de artırmayı denedim, ancak yardımcı olmadı. Yapılan herhangi bir öneri için minnettar olurum.

Teşekkürler.

+0

kullanarak verileri çekebilir. henüz bir açıklama bulamıyor. 30 saniye sonra zaman aşımına uğrar. Henüz bir çözüm buldunuz mu? –

+0

Bağlantı sorunu gibi görünüyor. –

+0

Aynı burada. Ben 'curl' kullanıyorum ve TIMEOUTS da yaşıyorum, ancak kayıtların endekse rasgele eklendiğini fark ettim. Bu sorunu çözmek için herhangi bir şans? –

cevap

0

kullanabilirsiniz tek bir yolu vardır:

wait_for_completion=false 

bir Task ID dönecektir ve sonra biz de bir zaman aşımı görüyoruz bu Task ID