Асинхронная вставка в MongoDB в C # - PullRequest
1 голос
/ 11 апреля 2011

Как я могу сделать асинхронную вставку / обновление MongoDB в C #? Какая терминология для ленивости?

  • опережающей записи

Ответы [ 2 ]

1 голос
/ 11 апреля 2011

Вставки MongoDB по умолчанию являются асинхронными, поскольку они запускаются и забываются. Проверка ошибок является явной операцией, или вы должны включить безопасный режим на уровне драйвера. Если вам нужны настоящие асинхронные операции: используйте очередь сообщений.

0 голосов
/ 11 апреля 2011

В мире кеширования «ленивость» будет называться «отложенной записью».Проверьте это: Cache / Wikipedia

Вероятно, самый простой способ - это использовать асинхронные вызовы C #.Это скажет вам, как:

Код будет выглядеть примерно так:

  • определить ваш собственный делегат:

        private delegate void InsertDelegate(BsonDocument doc);
    
  • используйте это

        MongoCollection<BsonDocument> books = database.GetCollection<BsonDocument>("books");
        BsonDocument book = new BsonDocument {
            { "author", "Ernest Hemingway" },
            { "title", "For Whom the Bell Tolls" }
        };
    
        var insert = new InsertDelegate(books.Insert);
    
        // invoke the method asynchronously
        IAsyncResult result = insert.BeginInvoke(book, null, null);
    
        //  DO YOUR OWN WORK HERE
    
        // get the result of that asynchronous operation
        insert.EndInvoke(result);
    

Надеюсь, что поможет.

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