簡體   English   中英

在 NodeJS 中同時運行數千個 setInterval 函數

[英]Running thousands of setInterval functions in NodeJS simultaneously

這更像是一個無代碼問題,因為我認為這對我的問題並不重要。

簡而言之,我正在構建一個用戶創建個人資料的應用程序。 每個用戶都有一定數量的積分,他們可以用來宣傳他們的個人資料。

促銷如何運作?

每個用戶在數據庫中都有一個“lastUpdated”字段,然后在主頁上對其進行排序。 當用戶通過 API 調用觸發促銷時,我會運行 X 毫秒的 setInterval(由用戶提供)。

每 X 毫秒,用戶的“lastUpdated”字段會收到一個時間戳,並從他們的帳戶中減去 X 個積分。 一旦用戶用完積分,setInterval 就會停止。

我的實際問題

考慮到可能有數千個這樣的調用,導致數千個 setInterval 函數同時運行,這在性能方面如何?

有沒有其他方法可以解決這個問題?

謝謝!

最好在需要時按需計算所有內容。 假設使用的積分數量取決於促銷活動的持續時間,您可以將開始時間存儲在數據庫中,然后使用當前時間根據已過去的時間計算剩余的積分數量。 與每隔幾毫秒運行一個函數相比,這將導致更少的操作。

如果您確實必須間隔一段時間執行此操作,最好每 5 秒左右運行一次(隨機數)。 由於這是與數據庫的接口,因此可能負載過多。

當來自一個用戶的 API 進來時按需做事應該是最干凈的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM