У меня есть метеорное приложение, которое размещено на Galaxy с базой данных на mLab.
Метеоритный метод обновления документов работает нормально, если документ небольшой, но если его размер превышает определенный размер, загрузка ЦП галактики возрастает до 100%, и контейнер становится нездоровым.
Meteor APM сообщает, что обновление базы данных занимает <400 мс, а «вычисление» (непосредственно перед обновлением) занимает 80 000+ мс. </p>
Вот упрощенный пример кода.
Коллекция объявлена и ей присвоена схема в одном файле.
trips.js
const Trips = new Mongo.Collection('trips');
//schema is declared and attached
export {Trips}
Методы объявлены в другом файле.
Methods.js
import {Trips} from '../trips';
Meteor.methods({
'updateTrip' (tripId, trip){
check(tripId, String);
check(trip, Object);
Trips.update({
_id: tripId
},{
$set: {
field1: trip.field1,
field2: trip.field2,
field3: trip.field3
}
});
}
});
В некоторых случаях поля - это объекты, в которые вложены большие объекты.
Я новичок в Meteor и MongoDB и не был первоначальным разработчиком для этого проекта, поэтому мне интересно, есть ли в этом коде ошибка, которая могла вызывать 100% загрузку ЦП и длительные задержки.