私はいくつかの要求をトリガして、いくつかのウェブフックを起動させるプロセスを持っています。私は私のwebhooksのすべてを受け取ったときにプロセスが完了したことを知っています。私のモデルはこのように見えます。モンゴースで「レースのような」状態になった
{
name: 'name',
status: 'PENDING',
children: [{
name: 'child1',
status: 'PENDING'
}, {
name: 'child2',
status: 'PENDING'
}]
}
アイデアは、ウェブフックが来るように、私はCOMPLETE
にsubdocサブを更新しています。各更新の最後に、他のものが完全であるかどうかを確認し、そうであれば親にstatus='COMPLETE'
を設定します。別の呼び出しがそれがまだPENDING
であったが、その2回目の呼び出しが保存される前であると判断した後に、サービスの呼び出しの1つがCOMPLETE
とマークされているようです。 2番目が保存されると、COMPLETE
が親のPENDING
で上書きされます。ここで
は私のスキーマからのコードです:
methods: {
doUpdate: function(data) {
var child = this.children.id(data.childId);
child.status = 'COMPLETE';
if (_.every(this.children.status, 'COMPLETE'))
this.status = 'COMPLETE';
return this.save();
}
}