我有一个节点应用程序,如果第一次失败,我需要在其中重试某个功能。 但是,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