簡體   English   中英

嘗試通過Redis更好地了解NodeJS並使用后台任務

[英]Trying to better understand NodeJS with Redis and using a background task

我正在嘗試在本地測試節點服務器,以尋找最終要在DigitalOcean上部署的功能(這是另一回事了)。 我已經成功設置了帶有其余端點和自簽名證書的本地節點服務器。 我的問題是我想存儲用戶可以通過點擊其余端點來檢索的數據。 我當前的想法是,我將在服務器上運行某種后台任務,該任務不斷獲取新數據,以便當一些較流行的查詢通過時,我可以為它們獲取最新的數據,並進行清理並准備就緒。

我的問題是我不明白我應該如何運行一個后台函數,該函數會一遍又一遍地調用自身而最終不會導致內存問題。 我當時在看Bull或Kue,但不確定是否適合我的特定需求。 我以前也從未處理過NoSQL數據庫,因此Redis對我來說是相當新的。 有什么建議或指示嗎? 我有點不知所措,即使我對自己想做的事情有一個大致的了解,也不確定從這里要去哪里。

我想到兩個選擇。 如果您使用的是“ hiredis”軟件包,那么在現代四核系統上,您可以獲得每秒20萬次查詢。 可以想象每次都可以檢索最新數據。

另一個選項涉及在啟動時間隔更新應用程序內存。 遞歸調用函數:

 function updateValuesFromRedis(seconds) { return redishmgetAsyc('keyhash') .then(function(values) { return saveValues(values); }) .finally(function() { setTimeout(function() { console.log('Updating...'); updateValuesFromRedis(seconds); }, 1000 * seconds) }) .catch(function(error) { console.error('Error updating values from Redis!', error); }); } (function schedule() { updateValuesFromRedis(60); })(); 

暫無
暫無

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

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