Meteor.js服务器方法队列

时间:2016-03-01 00:02:50

标签: meteor methods fibers

我在Meteor中有一个方法需要花费一些时间来执行,并且这个方法被很多次使用不同的参数调用。

但是客户端可以在数据仍然被加载时更改参数,所以我希望服务器能够以某种方式清除方法队列。这可能吗

仅为示例:

服务器:

Meteor.methods({
  'getLongTimeExecutedData': function (settings, reset) {
    let self = this;
    if(reset) {
      // How to reset my entire queue here.
    }
    Meteor._sleepForMs(1000);
    let myData = { settings: settings, timestamp: new Date() };
    return myData;
  }
});

客户端:

Meteor.call('getLongTimeExecutedData', { param1: 'test' , param2: 1 }, false);
Meteor.call('getLongTimeExecutedData', { param1: 'test' , param2: 2 }, false);
Meteor.call('getLongTimeExecutedData', { param1: 'test' , param2: 3 }, false);
...
// Reset queue on server with true here
Meteor.call('getLongTimeExecutedData', { param1: 'test2' , param2: 1 }, true);
Meteor.call('getLongTimeExecutedData', { param1: 'test2' , param2: 2 }, false);
Meteor.call('getLongTimeExecutedData', { param1: 'test2' , param2: 3 }, false);
...

我不想使用this.unblock(),因为该方法使用MS SQL连接,如果它仍然执行,它会占用大量不需要的服务器请求。

希望有人有一些想法? :)

//彼得

1 个答案:

答案 0 :(得分:0)