Массовое обновление и вставка с использованием вызова метода Meteor в цикле, что приводит к высокой загрузке ЦП

Мое приложение находится на [email protected], и я использую  reywood:publish-compositematb33:collection-hooks  для отношений с базой данных.

Мне нужно вставить список из 400 человек в коллекцию из файла Excel, для этого в настоящее время я вставляю с клиента, используя метод Meteor внутри цикла, но когда я вижу галактику во время этого, загрузка ЦП очень высока 70-80% или когда-то 100% .

После того, как все данные вставлены, мне нужно отправить письмо и обновить запись, поэтому я отправляю почту и обновляю, используя вызов метода Meteor один за другим, что снова делает ЦП 70-80%.

Как я могу выполнить вышеуказанную задачу правильно и эффективно. Пожалуйста помоги.

Спасибо.


person Amit    schedule 02.03.2019    source источник
comment
Не могли бы вы показать код, который относится к вашему описанию?   -  person Jankapunkt    schedule 02.03.2019
comment
Возможный дубликат Подписка и синхронизация Meteor выполняются медленно   -  person Christian Fritz    schedule 03.03.2019
comment
См. stackoverflow.com/a/19599027/1087119.   -  person Christian Fritz    schedule 03.03.2019


Ответы (1)


Я подозреваю, что вы не используете хвост оплога и пытаетесь вставить, когда в какой-то другой части вашего приложения открыты подписки на публикации. Без этого метеора опрашивает коллекции и генерирует много медленных запросов при каждой вставке документа.

Вы можете включить его, передав URL-адрес метеору при запуске. См. https://docs.meteor.com/environment-variables.html#MONGO-OPLOG-URL для получения дополнительной информации.

Наличие хвоста oplog снижает нагрузку на сервер и должно снизить высокую загрузку ЦП до управляемого уровня.

Если у вас все еще есть проблемы, вам, возможно, придется настроить некоторую трассировку, например. monti-apm https://docs.montiapm.com/introduction

person Paul Cochrane    schedule 09.03.2019