Düzgün bir şekilde çözümlendiğinden emin olmak için bir işlevin yaşam döngüsünü yönetmek önemlidir. İşlevleri doğru bir şekilde sonlandırarak, çok uzun süre çalışan veya sonsuz döngüye giren işlevlerden kaynaklanan aşırı yüklenmeleri önleyebilirsiniz. Ayrıca, işlevinizi çalıştıran Cloud Functions örneğinin, işleviniz başarıyla sonlandırma koşuluna veya durumuna ulaşmadan kapanmadığından emin olabilirsiniz.
İşlevlerinizin yaşam döngüsünü yönetmek için bu önerilen yaklaşımları kullanın:
- Bir JavaScript vaadi döndürerek zaman uyumsuz işleme ("arka plan işlevleri" olarak da bilinir) gerçekleştiren işlevleri çözümleyin.
-
res.redirect()
,res.send()
veyares.end()
ile HTTP işlevlerini sonlandırın. - Eşzamanlı bir işlevi bir
return;
Beyan.
JavaScript vaatleriyle eşzamansız kodu basitleştirin
Sözler, zaman uyumsuz kod için geri aramalara modern bir alternatiftir. Bir söz, bir işlemi ve geri getirebileceği gelecekteki değeri temsil eder. Ayrıca, eşzamanlı kodda dene/yakalaya benzer hataları yaymanıza da olanak tanır. Firebase SDK'daki vaatleri Firebase Blog'da ve vaatleri genel olarak MDN'de okuyabilirsiniz.
Sözler işlevlerle nasıl çalışır?
Bir işleve bir JavaScript vaadi döndürdüğünüzde, söz konusu işlev, söz çözülene veya reddedilene kadar çalışmaya devam eder. Bir işlevin işini başarıyla tamamladığını belirtmek için söz çözülmelidir. Bir hatayı belirtmek için söz reddedilmelidir. Bu, yalnızca istediğiniz hataları işlemeniz gerektiği anlamına gelir.
Aşağıdaki kod bir Firebase Realtime Database ref
alır ve değerini "world!"
olarak ayarlar. . set
sonucunu döndürerek, işlevinizin, dizeyi veritabanına yazmanın eşzamansız çalışması tamamen tamamlanana kadar çalışmaya devam etmesi garanti edilir:
// Always change the value of "/hello" to "world!"
exports.hello = functions.database.ref('/hello').onWrite(event => {
// set() returns a promise. We keep the function alive by returning it.
return event.data.ref.set('world!').then(() => {
console.log('Write succeeded!');
});
});
Bağlamdaki örnekler
Bulut İşlevleri kod örneklerimizin çoğu, uygun işlev sonlandırma örnekleri içerir. İşte tipik vakaları gösteren birkaç tanesi:
- Gerçek Zamanlı Veritabanı tetikleyicisi : bir HTTP işlevi ve ardından bir yönlendirme
- Bulut Depolama tetikleyicisi : Ardından bir depolama indirmesi ve
then
- Gerçek Zamanlı Veritabanında Web kancası yazma :
then
yan tümcesinin içine atılan bir hata - Kullanılmayan hesapları periyodik olarak silin : Reddedilen bir söz