2013-02-27 24 views
8

Bir fonksiyonda 3 meteor koleksiyonunu güncellemek istiyorum, ancak güncellemelerin üçü de başarılı olursa. Aksi takdirde geri dönmek istiyorum. Bunu yapmak için iyi bir desen var mı?Meteor işlemsel işlemler

Teşekkür

+0

Kontrol dışarı [ 'collection.update'] (tamamlandığında tamam olarak işaretler http: Ama yine şekiller vardır kullanabilirdin : //docs.meteor.com/#update). İsteğe bağlı bir geri çağırma vardır. Hata yoksa, sonraki güncellemeyle devam edebilirsiniz. – Prashant

+2

@Prashant Bunu tavsiye etmem çünkü ikinci adımda eğer düğüm aniden çöküyorsa veya mongodb sunucusuna erişimi kaybediyorsa 3. girdisi girilmemelidir. – Akshat

+0

Kazada ele alınabilir mi? Yani temel olarak her iki durumda da devlet değerlerini kullanmak zorunludur, ya? – Prashant

cevap

2

meteor açıkça işlemleri desteklemediğinden kendi veritabanı arka uç için MongoDB kullanır. http://docs.mongodb.org/manual/tutorial/perform-two-phase-commits/ Temelde

sadece işlemlerinizin her bir devlet değerini koymak ve sadece her şeyi

+0

Ve 'Collection.insert' bir geri arama parametresine sahip olduğundan, – Swadq

+0

işlemini sonlandırmak için geri aramayı kullanabilirsiniz. Geri çağrıyı kullanmak, istemci ucunda bir sonraki adıma geçmek için gereklidir, fiberler sunucuda ilgilenir. İşlem durumu öznitelik modeli kullanılmazsa geri arama işlemi işlem yapmaz. Bir hata gibi herhangi bir aşamada bir kesinti olursa, bir giriş diğerinde bulunacak ve olmayacaktır. Geri aramada hata denetimi kullanılırsa, hala bir sunucu çökmesi/güç kesintisi olayına karşı savunmasızdır. – Akshat