首页 文章

为Meteor方法设置cron作业

提问于
浏览
1

我有这段代码:

Meteor.methods({
  GetTickerInfo: function(){

    Future = Npm.require('fibers/future');
    var myFuture = new Future();

    kraken.api('Ticker', {"pair": 'ETHXBT'}, function(error, data) {
        if(error) {
            console.log(error);
        }
        else {
            console.log(data.result);
            console.log(data.result.XETHXXBT.a);

            myFuture.return(data.result);

        }
    });

    console.log("EHEHEHEHEHHEEH");
    console.log(myFuture.wait());
    return myFuture.wait();

  }
});

它的作用是调用API,获取一些数据,当它完成后,它将数据返回给客户端,以便我可以在图形中进行可视化 . 现在它是客户端的MANUAL单击按钮,它调用方法,完成工作并返回数据 .

我想安排一个cron来做那件事 . 因此,每5秒进行一次API调用并将数据返回给客户端(因为我可以将其可视化) . 所有cron作业都使用特定的函数,但是我无法访问此函数GetTickerInfo,因为它已定义并且在Meteor.methods的范围内 .

我怎么称它为cron作业,但是当我想在给定时刻进行手动刷新时,还会从客户端偶尔留下Meteor Call?

任何人都可以展示他们将如何实现这一点,例如CRON包装: percolatestudio/meteor-synced-cron

1 回答

  • 2

    你必须在方法范围之外,我个人会这样做:

    SyncedCron.add({
          name: 'GetTickerInfo cron',
          schedule: function(parser) {
            return parser.text('every 5 seconds');
          },
          job: function() {
            Meteor.call('GetTickerInfo');
              }
            });
    
    SyncedCron.start()
    

相关问题