我正在做一个关于CMS系统的学校项目来帮助操作我的学校网站。它使用3个数据库:
MongoDB(头部数据库,存储所有信息)
redis(存储网站菜单)
弹性搜索(商店帖子)
当前,当我插入/编辑/删除数据时,我还将插入/编辑/删除到相关数据库。但我的导师要我写一个函数,让系统在特定的时间在这3个数据库之间自动同步数据(用户可以选择何时)。
我的服务器使用node js来操作,这个要求对我来说是新的,以前从未听说过。我的新方法是:
向数据库字段添加1个标志
选择包含flag==true的所有行。
同步数据
但我不知道如何在特定时间自动运行上面的函数。我希望你们能帮我优化我的新流程,解决同步问题。
谢谢大家!!!!
编辑1:更改标题。
编辑2:我从以下主题找到了解决方案:Running a function everyday midnight,如果同步数据时出错,是否仍要重新运行此函数。像这样的:
function syncDataAtMidNight(){
var now = new Date();
var night = new Date(
now.getFullYear(),
now.getMonth(),
now.getDate() + 1, // the next day, ...
0, 0, 0 // ...at 00:00:00 hours
);
var msToMidnight = night.getTime() - now.getTime();
setTimeout(function() {
// is this a correct way to loop, in case of error when sync ???
myFunctionSync(err, resp) {
if(err){
myFunctionSync();
} else {
changeFlagToFalse();
syncDataAtMidNight();
}
}
}, msToMidnight);}
最佳答案
您应该考虑使用cron,他在系统级有着显著的优势,他可以得到代码错误返回,并且在必要时主要是启动/重新启动节点。
关于node.js - 每天在特定时间自动运行功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44213414/