MongoDB Global Timeout Query - PullRequest
       4

MongoDB Global Timeout Query

0 голосов
/ 02 марта 2020

Я пытаюсь выяснить, есть ли способ применить глобальное время ожидания запроса для предотвращения медленных / бездействующих / зависающих запросов. Мне не обязательно останавливать запрос, но мне нужно знать, было ли это, скажем, 30 секунд, а затем выдавать ошибку обратно в интерфейс внешнего интерфейса и регистрировать ее в бэкэнде.

I нашел этот код в mon go документации , которая выглядит так, как я хочу:

db.collection.find({description: /August [0-9]+, 1969/}).maxTimeMS(30000)

Единственная проблема заключается в том, что я хочу применить этот .maxTimeMS(30000) ко всем моим запросам глобально, а затем выдать соответствующую ошибку и записать ее в бэкэнд.

Как бы я достиг этого с Mon go? Не используется пн goose

1 Ответ

0 голосов
/ 05 марта 2020

Вы не можете

После просмотра исходного кода драйвера mongodb nodejs кажется, что есть внутренние белые списки с параметрами, которые можно распространять из dbOptions -> collectionOptions -> cursorOptions.

    const db = client.db("foo", { maxTimeMS: 1000 });        /// NOPE
    const coll = db.collection("bar", { maxTimeMS: 1000 });  /// NOPE
    let cursor = coll.find({ name: "asd" }, { maxTimeMS: 1000 }); /// YES

, поэтому вы должны вызывать / устанавливать maxTimeMS с каждым запросом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...