2016-06-18 1 views
0

私はnode.jsを新規にプログラミングしています。いくつかの日付を計算し、ノードスケジュールでジョブを設定する私のサーバーの外部メインファイルから呼び出されるNodeの関数を持っています。関数からnode-scheduleを使用してジョブをキャンセルする方法

この機能は、日付が追加されるたびに実行されます。これは、現時点で私の仕事が同じ価値を持って何度も設定されるという問題があることを意味します。

この機能の外からジョブをキャンセルする方法を探しているので、後でサーバーのメインファイルから特定のジョブを個別にキャンセルすることができます。これは私の仕事を更新する機能です。

exports.UpdateCron = function() { 
    var date1 = new Date(); 

    var group1 = schedule.scheduleJob(date1, function(){ 
    console.log('group1 start'); 
    }); 
}; 

これは私のメインファイルから呼び出したい機能ですが、group1はここでは定義されていません。誰かが私の仕事にアクセスする方法を説明することができますgroup1は、最初の関数で定義されて、2番目の関数からですか?

exports.DeleteCron = function() { 
    group1.cancel(); 
}; 

両方の機能は、node-scheduleを含む同じファイル内にあります。

+0

はちょうどあなたがそれを削除する必要がどこからアクセス可能なデータ構造で 'group1'保存 - あなたのケースでは、モジュールのスコープ内の変数には十分ですが。 – Bergi

+0

これら2つの機能は同じファイルにあります。これを実現する方法の例を教えてください。私はnode.jsでかなり新しいです – Kaliph

答えて

0

これは少し古くなっていますが、自分で回答を探すときに見つけました。これは単なるスコープの問題であると思われます。将来の読者のために、これはOPの問題を解決する必要があります。

let group1; 

exports.UpdateCron =() => { 
    const date1 = new Date(); 

    group1 = schedule.scheduleJob(date1,() => { 
    console.log('group1 start'); 
    }); 
}; 

exports.DeleteCron = function() { 
    if (group1 && group1.cancel) group1.cancel(); 
}; 
関連する問題