javascript - 如何在解析服务器上使用 kue 安排作业?

标签 javascript node.js push-notification parse-server kue

我有一个用 Heroku 部署的解析服务器(来 self 的 GitHub 存储库)并由 mongoLab 托管。我正在尝试在我的应用程序中发送预定的推送通知,kue 似乎是最可行的选择。然而,由于我对它非常陌生,我不知道如何处理它。我相信我已经在我的服务器上正确安装了 kue(通过 GitHub)。现在,我想安排此代码在将来的某个日期执行:

    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});

    });

如果我以正确的方式处理这个问题,那么我需要代码来简单地安排一个作业(上面的代码)在将来的指定时间执行。我没有将代码安排为定期或间隔运行,只是在将来的指定时间运行一次。 如果有任何答案或建议,我们将不胜感激,谢谢!

最佳答案

以下是如何使用 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' );

关于javascript - 如何在解析服务器上使用 kue 安排作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37103639/

相关文章:

android - 构造函数通知已弃用

javascript - 单击淡出的音频音量?

javascript - 在 ngRepeat 生成的每个表格行下方添加表格行

node.js - 我们的时间追踪器如何绕过 MacOS 辅助功能设置?

node.js - Vagrant、nodejs 和 iptable 端口转发

ios - iOS 10.0.1推送通知自定义声音无法播放(mp3)

javascript - JavaScript 中的继承,我做对了吗?

javascript - 在 Google map 上叠加 HTML

node.js - 在 'capture' 上获得的 Artillery.io 值在 'expect' 上不可用

ios - 即使应用程序未运行也显示警报