Javascript Nodejs循环事件执行

Javascript Nodejs循环事件执行,javascript,node.js,redis,timer,Javascript,Node.js,Redis,Timer,您好,我的setInterval有问题,如果下面的检查是我的功能,那么它只执行一次 constredis=require('redis'); const cache=redis.createClient(); 要求('./execSocket'); 功能测试仪(){ cache.dbsize(函数(err,res){ 如果(res){ 控制台日志(res); 如果(分辨率>10){ 需要('./execSql'); }否则{ 要求('./execSocket'); } }否则{ 控制台日志(e

您好,我的
setInterval
有问题,如果下面的
检查是我的功能,那么它只执行一次

constredis=require('redis');
const cache=redis.createClient();
要求('./execSocket');
功能测试仪(){
cache.dbsize(函数(err,res){
如果(res){
控制台日志(res);
如果(分辨率>10){
需要('./execSql');
}否则{
要求('./execSocket');
}
}否则{
控制台日志(err);
要求('./execSocket');
}
});
}
setInterval(函数(){
teste();
},20000);
require()
加载模块一次,然后从缓存中检索模块,并且在不显式执行任何函数的情况下,不会执行模块内的任何代码

建议从每个方法中导出专用方法,并在分支中显式执行它们


有关详细信息,请参阅。

我找到了解决问题的方法,代码如下所示:

constredis=require('redis');
const cache=redis.createClient();
const shellExec=require('shell-exec');
要求('./execSocket');
功能测试(){
cache.dbsize(函数(err,res){
如果(res){
控制台日志(res);
设i=10;
如果(res>i){
console.log(“”)
console.log(“”)
shellExec('node execSql')。然后(suces=>{
console.log(成功)
}).catch(错误=>{
控制台日志(err);
});
}否则{
控制台日志(“”);
控制台日志(“”);
shellExec('node execSocket')。然后(suces=>{
console.log(成功)
}).catch(错误=>{
控制台日志(err);
});
}
}否则{
控制台日志(err);
要求('./execSocket');
}
});
}
setInterval(函数(){
test();

},20000);非常感谢您的帮助,我能够使用shell exec解决我的问题。。。