我有一個數據追加到一個火力點數據庫列表中的火力HTTP功能。第二個功能被配置爲在列表發生變化時處理列表,然後更新一些彙總數據。在我的情況下,這些更新爆發。我使用的是node.js的firebase功能。如何應對火力點觸發功能的執行順序
綜觀火力日誌,我看到該序列與一個空的列表開始時:
- 的添加到從http列表 - 列表具有1名元件
- 的添加到從http列表 - 列表具有2種元素
- 的添加到從http列表 - 列表具有3個元素
- 的添加到從http列表 - 列表具有4個元素
- 總結表1個元件
- 3個元素總結列表
- 具有4個元件總結列表
- 總結表2個元素
我的問題是該摘要僅包含2個元素,而不是4。
這將出現在總結觸發器函數是並行調用的,而不是順序調用,因此當幾個觸發器靠近時,最後一個觸發器可能是觸發而不是最後觸發器中的一個。
什麼樣的方法可以用來確保彙總計算具有「所有數據」,並降低運行速度不會覆蓋以後的一個總結之前計算?可以將Firebase函數觸發器序列化爲按照它們啓動的順序執行嗎?
理想情況下,我希望避免在突發事件發生時計算N次總結,因此某些解決方案可以在未來的某個短時間內「安排」摘要,然後取消並重新安排新事件發生會好的。
這似乎並不合理e在火力點的背景下完成一個'onChange',然後再維修下一個。特別是因爲它將新狀態傳遞給處理程序。我只是希望最後的總結知道它實際上使用了所有可用的數據。我可以添加定期更新,但數據觸發更新看起來更清晰。 – Glenn
您會如何建議將所有正在運行的服務器實例中的onChange的所有正在運行的實例(對於單個路徑(使用通配符))進行同步?尤其是考慮到他們可能都在做阻塞工作,可能需要大量的時間? –