2017-06-07 20 views
0

変更がある場合、アプリケーションは2秒ごとにポーリングする必要があります。今のところ私はsetIntervalを使用していますが、myFunctionは実行に2秒以上かかることがあり、mysqlデータベースのレコードは2回挿入されます。私はMyFunctionのはノードJS、終了後に同じ関数を実行

method.myFunction() =>

を終了すると

それは(再び実行する必要があるが、それがある場合にのみ...だから私はこれを必要とMyFunctionので非同期のlibの使用..

を作ります終了)。 x秒のsetIntervalはオプションではありません。これは、スクリプトがx秒以上かかると同時に実行できるためです。

がどのように私はx秒後に再度myFunctionを実行することができますが、場合にのみ、myFunctionだから擬似コードで、それは以下のコードをので、この

if method.myFunction == finished wait 2 seconds run method.myFunction again

+0

...魔法のように動作 – owaishanif786

答えて

0

私は、このようにコードを修正使用し、それはあなたがコードスニペットを共有することができ

var backup_timeout_seconds = 5000; 
 
var main_rest_seconds = 2000; 
 
function godMethod(timeout){ 
 

 

 
    var backuptimeout = setTimeout(function(){ 
 
     godMethod(main_rest_seconds); 
 
     console.log("Called backup timeout, script is stuck..."); 
 
    }, backup_timeout_seconds); 
 

 

 
    
 
    Pollforbids.pollForNewBids2(,function (err,res) { 
 
     executor(timeout); 
 
     clearTimeout(backuptimeout); 
 
    }); 
 

 

 

 
} 
 

 

 

 

 

 
function executor(interval){ 
 
    setTimeout(function(){ 
 
     godMethod(interval); 
 
    }, interval); 
 

 
} 
 

 
godMethod(main_rest_seconds);

+0

しかし、なぜあなたは答えた「ダニ」マークを私のものから削除しましたか? Coz私はあなたの質問に答え、あなたの問題は正しく解決? –

2

だろう処理 で行われ、あなたの方法になります関数の実行が終了すると1秒に1回呼び出されます。

function godMethod(){ 
    /* do what ever you want but call executor once you are done with everything */ 
    someCallbackForInsertion(data, function(){ 
     executor() 
    })  
} 

function executor(){ 
    setInterval(function(){ 
     godMethod() 
    }, 2000); 
} 

executor(); 

だからここにあなたがして2秒後に、それはgodMethodは、あなたの挿入/何を行うに呼び出して、サーバーの起動時に実行者を呼び出します。正常に挿入したら、executorを再度呼び出します。

+0

おけば、あなたに感謝します。だから、もしgodMethodが実行するのに5秒かかるなら、それはただ待っているのですか?これは私のコードが同時に実行されるのを防ぐでしょうか? – erwinnandpersad

+0

ええ、あなたのgodMethodは決して同時に実行されることはなく、前のgodMethodの実行が完了してから2秒後に実行されます。 –

+0

それが動作する場合は、それを回答として受け入れることができますか? –

0

コールバックを使用するか、以前のプロセスが完了したときにのみ、次のポーリングを実行できるようにすることを約束します。

+0

私は約束としてasyncを使用します – erwinnandpersad

関連する問題