节点js中的SSH命令突然重试

时间:2018-07-27 20:36:02

标签: node.js

我有一个节点应用程序,如果第一次失败,我需要在其中重试某个功能。 但是,SSH命令的运行超出了它的功能。我仍然无法理解SSH命令为什么运行得比必须的更多。就像每次必须运行一样,它运行了3次,然后在下次必须重试时相乘。有什么办法吗? 下面是代码和输出。 节点版本为6.9 代码:

var SSH = require('simple-ssh');
var ssh = new SSH({
host: ip,
user: id,
pass: pwd
 });
 var retrys=1;
 var maxretry=6;
 var err;
 lsCheck();



function lsCheck(){
console.log('in ls');
if(retrys < maxretry){
    console.log('try attempt '+retrys);

 //to check if the destination folder is emtpy or not.
 ssh.exec("cd path;ls | wc -l",{
 out: function(stdout) {
    console.log('called server for folder list');
 if(stdout == 0){
     //if emtpy , the xfer the package
   .. code

  }
  else{
   console.log('not good to xfer, retry in 5');
   err = 'retry Attempt maxed out';
     //if not emtpy , the wait 5 seconds and try again.
     setTimeout(() => {
         console.log('retrys');
                        retrys=retrys+1;
         console.log(retrys);
         lsCheck();      
        },5000);

  }

  },
  err:function(err){
     console.log(err);
     res.send('Failure');
     res.end('OK')
   }
  }).start();
}
 else{
    res.send(err);
    res.end('OK');
  }

 }

输出

in ls
try attempt 1
called server for folder list
not good to xfer, retry in 5
retrys
2
in ls
try attempt 2
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
retrys
3
in ls
try attempt 3
retrys
4
in ls
try attempt 4
retrys
5
in ls
try attempt 5
retrys
6
in ls
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
called server for folder list
not good to xfer, retry in 5
retrys
7
in ls

0 个答案:

没有答案