Bir işlevin yaşam döngüsünü yöneterek şu problemi çözmesini sağlamak: gerekir. İşlevleri doğru şekilde sonlandırarak fazla ücret ödemekten kaçınabilirsiniz. işlevini kullanın. Ayrıca, hedeflerin işlevinizi çalıştıran Cloud Functions örneğinin kapatmadığından işleviniz sonlandırma durumuna veya durumuna başarıyla ulaşmadan önce kullanır.
İşlevlerinizin yaşam döngüsünü yönetmek için şu önerilen yaklaşımlardan yararlanın:
- Eşzamansız işleme ("arka plan işlevleri" olarak da bilinir) gerçekleştiren işlevleri JavaScript taahhüt edin.
- HTTP işlevlerini
res.redirect()
,res.send()
veyares.end()
. return;
ifadesiyle birlikte eşzamanlı işlevleri sonlandırın.
JavaScript'in vaatleri ile eşzamansız kodları basitleştirin
Vaatler, eşzamansız kod için geri çağırmaların modern bir alternatifidir. Vaat bir işlemi ve döndürebileceği gelecekteki değeri temsil eder. Ayrıca şunları da yapmanıza olanak tanır: zaman uyumlu kodda dene/yakala yöntemine benzer şekilde hata yaymasını sağlar. Aşağıdaki konular hakkında daha fazla bilgi edinebilirsiniz: Firebase SDK'sındaki Blog ve vaatlerde bulunan MDN.
Vaatlerin işlevlerle çalışma şekli
Bir işlev için JavaScript taahhüdünü döndürdüğünüzde, Taahhüt verilene veya reddedilene kadar çalışmaya devam eder. Bu durumun, fonksiyonunun çalışmasını başarıyla tamamladığında, vaat edilen çözüm bulunmalıdır. Alıcı: bir hata belirtiyorsa vaat reddedilmelidir. Bu durumda tek yapmanız gereken istediğiniz hataları ele alın.
Aşağıdaki kod Firebase Realtime Database ref
değerini alır ve değerini
"world!"
. set
sonucunu döndürdüğünüzde işlevinizin
dizeyi veritabanına yazma gibi eş zamansız çalışma gerçekleşene kadar çalışmaya devam eder.
tamamlandı:
// 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ğlama dayalı örnekler
Cloud Functions kodumuzun büyük bir kısmı örnekler doğru işlevi sonlandırma örneklerini içerir. Çevik yaklaşımın tipik durumlar:
- Gerçek Zamanlı Veritabanı tetikleyici: ve ardından yönlendirmesi gelen bir HTTP işlevi
- Bulut Depolama
tetikleyici:
İndirme depolama alanı ve ardından
then
- Realtime Database'de Webhook
yaz:
then
yan tümcesinin içinde hata bildirilir - Kullanılmayanı düzenli olarak sil hesaplar: Reddedilen söz