为流星方法设置一个cron作业

时间:2016-02-22 19:14:29

标签: javascript meteor cron

我有这段代码:

    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 个答案:

答案 0 :(得分:2)

你必须超出方法范围,我个人会这样做:

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

SyncedCron.start()