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

Javascript 如何在解析服务器上使用kue安排作业?,javascript,node.js,push-notification,parse-server,kue,Javascript,Node.js,Push Notification,Parse Server,Kue,我有一个配置了Heroku(来自我的GitHub repo)的解析服务器,由mongoLab托管。我正在尝试在我的应用程序中发送定时推送通知,kue似乎是最可行的选择。然而,由于我对它非常不熟悉,我不确定如何处理它。我相信我已经在我的服务器上正确安装了kue(通过GitHub)。现在,我希望将此代码安排在将来的某个日期执行: Parse.Cloud.define("sendPush", function(request, response) { var pushQuery

我有一个配置了Heroku(来自我的GitHub repo)的解析服务器,由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});

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

下面是一个示例,您可以使用 在未来的特定时间仅限一次:(12小时后)


非常感谢您的回复!我觉得我好像很亲近。然而,我使用了这个精确的代码,并将其放在一个云函数(
Parse.cloud.define(“sendpushtosspecificuser”,函数(请求,响应){“您提供的代码”});
)中,我从设备调用该函数。然后我收到一个错误,通知没有发送。你知道为什么会发生这种事吗?你好,塔尔·阿维萨,1岁。在哪里使用此源代码?2.如果我想在启动解析服务器时启动作业,代码会是什么样子?3.我需要这行代码“due.app.listen(3000);”吗?
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' );