为流星方法设置 cron 作业

Setting a cron job for a Meteor Method

本文关键字:cron 作业 设置 方法 流星      更新时间:2023-09-26

我有这段代码:

    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,获取一些数据,完成后它将数据返回给客户端,以便我可以在图形中进行可视化。目前,它是客户端上的手动单击按钮,用于调用方法、执行作业并返回数据。

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

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

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

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

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