2016-05-08 5 views
1

私はHeroku(私のGitHubリポジトリから)で展開され、mongoLabによってホストされた解析サーバを持っています。私は自分のアプリ内で予定されたプッシュ通知を送信しようとしています。そしてkueは最も実行可能なオプションのようです。しかし、私はそれに非常に精通していないので、私はそれにアプローチする方法を確信していません。私は正しくGueHubを通して私のサーバーにkueをインストールしたと信じています。parse-serverでkueを使ってジョブをスケジュールするにはどうすればいいですか?

Parse.Cloud.define("sendPush", function(request, response) { 


     var pushQuery = new Parse.Query(Parse.Installation); 
     pushQuery.equalTo('username', request.params.targetUsername); 

     Parse.Push.send({ 
     where: pushQuery, // Set our Installation query                                        
     data: { 
      alert: 'Hello!', 
      badge: 'Increment', 
      sound: 'PopDing.caf' 
     }, 
     }, { success: function() { 
    console.log("#### PUSH OK"); 
     }, error: function(error) { 
    console.log("#### PUSH ERROR" + error.message); 
     }, useMasterKey: true}); 

    }); 

私は正しい方法これに近づいていた場合は、その後、私は単純に(上記のコード)ジョブをスケジュールするためのコードが必要になります。今、私はこのコードをスケジュールしたいと思い、将来の日付で実行されます将来、指定された時刻に実行されるようにします。私は、定期的にまたは間隔を置いて実行するようにスケジュールされたコード、将来の指定された時刻に1回だけ実行されるコードはありません。 答えやアドバイスをいただければ幸いです。ここで

答えて

1

は、あなたが将来の特定の時間に一度だけkue で、このタスクをスケジュール実行できる方法の例である:(12時間後)

var kue = require('kue'); 

// create our job queue 
var jobs = kue.createQueue(); 

// one minute 
var minute = 60000; 

var job= jobs.create('parseCloud', { 
    alert: 'Hello!', 
      badge: 'Increment', 
      sound: 'PopDing.caf' 
}).delay(minute * 60 * 12) 
    .priority('high') 
    .save(); 



job.on('complete', function() { 
    console.log('renewal job completed'); 
}); 



jobs.process('parseCloud', function (job, done) { 

     var pushQuery = new Parse.Query(Parse.Installation); 
     pushQuery.equalTo('username', request.params.targetUsername); 

     Parse.Push.send({ 
     where: pushQuery, // Set our Installation query                                        
     data: { 
      alert: job.data.alert, 
      badge: job.data.badge, 
      sound: job.data.sound 
     }, 
     }, { success: function() { 

     console.log("#### PUSH OK"); 
     done(); 
     }, error: function(error) { 
     console.log("#### PUSH ERROR" + error.message); 
     done(); 
     }, useMasterKey: true}); 

}); 

// start the UI 
kue.app.listen(3000); 
console.log('UI started on port 3000'); 
+0

応答をありがとうございました!まるで私がとても近いと感じます。しかし、私はこの正確なコードを使って、デバイスから呼び出すクラウド関数( '' Parse.Cloud.define( "sendPushToSpecificUser"、function(request、response){"あなたが提供したコード}}) 。私はエラーを受け取り、通知は送信されません。なぜこれが起こっているのかについてのアイデアはありますか? –

+1

こんにちはTal Avissar、 1.このソースコードをどこで使用しますか? 2. parse-serverの起動時にジョブを開始したい場合は、どのようなコードが表示されますか? 3.このコード行が必要ですか?due.app.listen(3000); –

関連する問題