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解决我的问题。。。