我在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连接,如果它仍然执行,它会占用大量不需要的服务器请求。
希望有人有一些想法? :)
//彼得
答案 0 :(得分:0)