2014-11-28 21 views
6

Google App Engine'de Goroutines kullanabilir miyim?Google App Engine'de Goroutines kullanabilir miyim?

Aşağıdaki örnek çalışıyor gibi görünüyor, ancak kullanabilir miyim? Amacım, çok hafif bir arka plan işleme yapmak (gerçek bir görev kuyruğu işi çok ağır hissettiriyor) yapmak ve sonucu müşteriye hemen geri vermek istiyorum.

func MyHandler(w http.ResponseWriter, r *http.Request) { 

    go func() { 
    // do something here but return immediately 
    }() 

    return // 200 
} 
+0

Bu iplik muhtemelen ilgi geçerli: https://groups.google.com/forum/#!topic/google-appengine-go/fv1BgRHcH_M – Greg

cevap

7

Evet, bunu ancak AppEngine'de için hesap goroutines içine sınırlamaları alabilir: App Engine için git çalıştırma ortamı paralel yürütülmesi için goroutines için tam destek sağlar, ancak

: goroutines Tek bir işletim sistemi iş parçacığı üzerinde planlanmış. Bu tek iplik kısıtlaması , sonraki sürümlerde kaldırılabilir. Birden çok istek, belirli bir örnekle eşzamanlı olarak işlenebilir; Bu, bir istek olduğunda, bir veri deposu API çağrısı için beklemenin, başka bir isteğin aynı örnek tarafından işlenen olabileceği anlamına gelir.

Kaynak: Burada https://cloud.google.com/appengine/docs/go/runtime

Bkz fazla ayrıntı: https://cloud.google.com/appengine/docs/go/

+0

[Bu] 'ya göre (https://talks.golang.org/2013/highperf.slide#25) söylediğiniz şey yanlış görünüyor. Bir şey mi eksik? – inf

+0

Goroutines'i kullanabilirsiniz. Appengine hizmetlerine erişim için arka plan bağlamına ihtiyacınız vardır, (hala) appengine.RunInBackground çağrısı ile ulaşılabilir. –

İlgili konular