SORU
14 Mart 2013, PERŞEMBE


Keser HTTP yanıtları Heroku?

Bir çalıştırıyorum/Gunicorn ŞişesiHeroku bir Sedir dyno üzerinde Python uygulaması. App müşterilerine JSON responses (**3, bir çok şey) verir.

Bir süredir müşterilerine 0 baytlık yanıtları aldıktan sonra. Onları bana geri dönen, ancak değil. İşte benim app günlük bir parçacık:

Mar 14 13:13:31 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 uygulaması[web.1] [2013-03-14 13:13:31 UTC] 10.104.41.136 apisrv - () api_get_credits_balance:=session_token[MASKELİ]

İlk satırı yukarıdaki isteği işlemek için bana başlıyor.

Mar 14 13:13:31 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 uygulaması[web.1] [2013-03-14 13:13:31 UTC] 10.104.41.136 apisrv 1252148511 () api_get_credits_balance: [{'a': 0} credits_balance] . dönen

İkinci satır için bir değer "" nesne) Yanıt. (bir içki Şişesi ... Şişeyi bana geri dönüyor

Mar 14 13:13:31 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 uygulaması[web.1] "10.104.41.136 - - [14/Mar/2013:13:13:31] "POST /get_credits_balance?session_token=HTTP/1.1" 200 22 "-"MASKELİ "Appcelerator Titanyum 3.0.0/.(İPhone/6.1.2; iPhone OS; en_ us;) GA"

Üçüncü satır Gunicorn 200 durumu ve 22 bayt HTTP vücudun var görebilirsiniz nerede, Gnicorn.("200 22").

Ancak, istemci 0 bayt var. Burada Heroku yönlendirici günlüğü:

Mar 14 13:13:30 d.0b1adf0a-0597-4f5c-8901-dfe7cda9bce0 heroku[yönlendirici] =info yöntemi==/get_credits_balance yol SONRASI?session_token=MASKELİ ana=matchspot-apisrv.herokuapp.com ilt="66.87.116.128" dyno=web.1 =0 bekle=0ms connect=1ms=19ms=200=0 sıra hizmet durumu bayt

Neden Gunicorn ama Heroku görür 0, ve gerçekten geri istemciye 0 bayt geçer 22 bayt dönmek mi? Bu Heroku bir hata mı?

CEVAP
23 EYLÜL 2012, Pazar


Seçenek 4

Kaynaklarınız varsa Eğer Closeable, AutoClosable olacak şekilde değiştirin. Kurucular zincirli olması kaynağın iki kez kapatmak için duyulmamış bir şey değil anlamına gelir. (Bu çok önce KOL doğruydu.) Daha fazla bu aşağıda.

Seçenek 5

KOL ve kodu çok dikkatli bir şekilde kapatmak sağlamak için kullanmayın() iki kez aradı değil!

Seçenek 6

KOLUNU kullanın ve son olarak kapat yok() çağrılarını bir try kendilerini yakalamak/.

Neden bu sorun, KOL için benzersiz olduğunu sanmıyorum

Tüm bu örnekler, son olarak kapat() çağırır catch bloğu içinde olmalıdır. Okunabilirlik için dışarı bıraktı.

Fw iki kez kapalı olabilir çünkü. ama hypothetial örnek için FileWriter iyi değil):

FileWriter fw = null;
BufferedWriter bw = null'
try {
  fw = new FileWriter(file)) {
  bw = new BufferedWriter(fw);
  bw.write(text);
} finally {
  if ( fw != null ) fw.close();
  if ( bw != null ) bw.close();
}

Bir BufferedWriter inşa iyi çünkü fw kapalı değilse bir istisna. (tekrar, ama varsayımsal örnek olamaz):

FileWriter fw = null;
BufferedWriter bw = null'
try {
  fw = new FileWriter(file)) {
  bw = new BufferedWriter(fw);
  bw.write(text);
} finally {
  if ( bw != null ) bw.close();
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Arun Kumar

    Arun Kumar

    18 Mart 2010
  • jedimasterkyle

    jedimasterky

    11 ŞUBAT 2006
  • sdasmarchives

    sdasmarchive

    2 HAZİRAN 2010