2016-11-22 9 views
3

私はパーセルサーバ(AWS Beanstalk Node.jsで稼動)で何らかのスケジューラを働かせようと1時間を過ごしました 私はjsファイルの中にいくつかのコードを取得するが、それは動作していたように見えなかった。 ダッシュボードで手動でジョブを実行する必要がないように、何らかのスケジューラを設定する方法はありますか?パーサーサーバ - スケジューラを使って 'jobs'を何度も実行する方法

+0

lotsa LIBSはその.... https://github.com/scripting/nodeRunnerを行うか、これは解析サーバーで動作しますcronの –

+0

を使用します??私はすでにnpm node-cronを試してみましたが、それはうまくいくと言いましたが、私がやっていたことを知っていなかったか、コードは実行されませんでした。(エラーはありませんでした) – D34thSt4lker

+0

psrvrはプロセス#1です。 proc#2は他の仕事のためにcrondのように実行することができます –

答えて

1

(免責事項、私は前に解析を使用していないが、それに見た後、解析はnodejsで実行して表現しているように見えるので、これは動作するはずです。)

ノード・スケジュールは、設定が簡単ですジョブをスケジューリングするためのモジュール。試してみるには、node_modulesとpackage.jsonがあるメインプロジェクトディレクトリでこれを実行してください。

npm install node-schedule --save 

「schedule.js」とメインの起動ファイルでそれを必要と同様に、別のファイルにこのコードを追加、またはメインの起動ファイルに直接それを置きます。私が見たパースビデオチュートリアルのスクリーンショットに基づいて、ファイルが「index.js」と呼ばれることがありますにconsole.logジョブを設定することにより

var schedule = require('node-schedule'); 

// start a job running Monday through Friday at 2:15 PM 
var rule = new schedule.RecurrenceRule(); 
rule.dayOfWeek = [1,2,3,4,5]; 
rule.hour = 14; 
rule.minute = 15; 

var startJob = schedule.scheduleJob(rule, function() { 
    console.log('job started at ' + new Date()); 
}); 

テストそれをあなたがあなたのサーバーを起動したときからの分を実行すると、起動直後に 'job started at ...'という出力が表示されます。

動作したら、console.log行を編集して、通常はダッシュボードから呼び出す関数を呼び出します。

曜日の配列を編集して、これを実行する日に編集します。 0は日曜日、6は土曜日です。必要に応じてrule.hourとrule.minuteを編集します。

実行するルールと関数を指定し、ルールと関数を上記のようにschedule.scheduleJobに渡すことで、好きなだけ多くのジョブを開始できます。

+0

ありがとう、病気これは試してください – D34thSt4lker

4
You have Configure the nodejs cron job for parse-server job schedule. 

1. install "CRON" module - npm install cron,(reference:https://www.npmjs.com/package/cron). 


2. Change the parse server job Schedule function declaration. 
     Parse.Cloud.job("jobScheduleName", function(){ }) 
      To 
     function jobScheduleName() { }; 

3.Run cron 
    var CronJob = require('cron').CronJob; //include dependency 
    //add this code to run job every 15 minute. 
    //set your time as per your run schedule. 
    new CronJob('0 */15 * * * *', function() { 
      Cron.jobScheduleName(); 
     }, null, true,"timeZone"); 
+0

私はあなたと同じようにすべてをセットアップしました。何も実行されていないようです。クラウドコードでcronジョブを実行しているときに、サーバーの速度が低下し、クラッシュするように見える場合を除きます。何か案は? – D34thSt4lker

+0

私は理解できるように、より多くの説明とコードを提供してください。 – IftekharDani

+0

私はそれが働いた!私はクロンの仕事の機能を混乱させた。ありがとう – D34thSt4lker

関連する問題