У меня есть метод в Meteor, для выполнения которого требуется немного времени, и этот метод называется много раз с разными параметрами.Очередь метода сервера Meteor.js
Но клиент может изменить параметры, пока данные все еще загружаются, поэтому я хочу, чтобы сервер мог как-то очистить очередь методов. Возможно ли это
Так просто для примера:
Сервер:
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, и если он все еще выполняется, он обрабатывает много нежелательного запроса на сервер.
Надеюсь, у кого-нибудь есть идеи? :)
// Питер
это единственный способ контролировать это, добавив все мои вызовы методов в Сначала коллекцию? Просто подумайте, что это странный подход к этому. Кроме того, я не хочу, чтобы задания были сложены ... Я хочу, чтобы каждый клиент имел свой собственный стек, но просто хочу иметь возможность отменить все нежелательные запросы в стеке. – DesignMonkeyDK