2013-05-12 17 views
5

Java Play2 uygulamasında, eşzamanlı bir üçüncü taraf istemci kitaplığı aracılığıyla veri almak için bazı harici web hizmetleri çağırılıyor. Bu uygulama için yüksek trafik ve ölçeklenebilirliğe ihtiyacım var.Oynat 2: play.libs.WS ASync işleme için 3. parti istemci kitaplığı

oyun belgelerine diyor ki: Bir 3. parti istemci kütüphanesine (yani değil kullanarak Play'in asenkron WS API) [aracılığıyla DİNLENME/WebService API'leri kullanarak :

Cases engelleyebilir kodunuzu eklediğinizde ...]

Bu nedenle, engelleme kodunuzu Futures uygulamasına yansıtmak isteyebileceğinizi unutmayın. Bu

aksine, IO aşağıdaki türlerde blok yok [...], sadece engelleme farklı bir iş parçacığı gerçekleşmesi anlamına gelir olmayan engelleme yapmaz: Çal WS API, ... bir play2 Java uygulamasında

, varsayılan oyun havuzu Futur görevler için kullanıldığı için işler asenkron hale getirmek için vaatlerde kullanmak gerçekten yararlı değil. Sonuç olarak, bir çok Futur kullanmak sadece büyük bir varsayılan iş parçacığı olan eşzamanlı çağrıları kullanmakla aynı sonucu verir: aynı havuzda aynı sayıda iş parçacığı.

Yani benim sorular şunlardır:

  • gerçekten asenkron (oynatma varsayılan havuzda herhangi bir iplik engellemediğini) Java API play.libs.WS API nedir?
  • Yüksek hız ve ölçeklenebilirlik istiyorsanız her zaman 3. taraf istemci kitaplığım yerine onu kullanmalıyım. Play.libs.WS API tarafından kullanılan iş parçacığı havuzu nedir ve uygulamam çok iş yaparsa boyutunu artırmalıyım WS çağırır?
  • , 3. taraf senkronize istemcisini geleceğe sarmak suretiyle play.libs.WS API'si kadar async olmanın bir yolu var mı?

Çok teşekkürler

Loic

+0

Kod baktığımızda, play.libs.WS Netty havuzunu kullanıyor (bir AsyncCompletionHandler kullanarak ) Doğru muyum? – Loic

cevap

1

Guillaume Bort Çal posta listesinde söylediği gibi, play.libs.WS API ", AsyncHttp kütüphanesinde kendisi tarafından yönetilen kendi iş parçacığı havuzu vardır ama Kaputun altında NIO kullandığı için, temelde gerçekten engelleyici olmadığı kadar önemli değil. "

Bu yüzden mümkün olduğunca sık kullanılmalıdır.

İlgili konular