Ejemplo n.º 1
0
        public override async Task ImportData(Stream stream, SmugglerOptions options)
        {
            SmugglerJintHelper.Initialize(options ?? SmugglerOptions);

            var batchSize = options != null ? options.BatchSize : SmugglerOptions.BatchSize;

            using (store = CreateStore())
            {
                Task disposeTask = null;

                try
                {
                    operation = store.BulkInsert(options: new BulkInsertOptions
                    {
                        BatchSize       = batchSize,
                        CheckForUpdates = true
                    });

                    operation.Report += text => ShowProgress(text);

                    await base.ImportData(stream, options);
                }
                finally
                {
                    disposeTask = operation.DisposeAsync();
                }

                if (disposeTask != null)
                {
                    await disposeTask;
                }
            }
        }
Ejemplo n.º 2
0
        public async Task AsyncBulkInserts()
        {
            using (var store = new DocumentStore())
            {
                #region bulk_inserts_5

                BulkInsertOperation bulkInsert = null;
                try
                {
                    bulkInsert = store.BulkInsert();
                    for (int i = 0; i < 1000 * 1000; i++)
                    {
                        await bulkInsert.StoreAsync(new Employee
                        {
                            FirstName = "FirstName #" + i,
                            LastName  = "LastName #" + i
                        });
                    }
                }
                finally
                {
                    if (bulkInsert != null)
                    {
                        await bulkInsert.DisposeAsync().ConfigureAwait(false);
                    }
                }
                #endregion
            }
        }
Ejemplo n.º 3
0
        public override async Task ImportData(SmugglerImportOptions <RavenConnectionStringOptions> importOptions, Stream stream)
        {
            using (store = CreateStore(importOptions.To))
            {
                Task disposeTask = null;

                try
                {
                    if (operation != null)
                    {
                        await operation.DisposeAsync().ConfigureAwait(false);
                    }
                    operation = CreateBulkInsertOperation(store);
                    await base.ImportData(importOptions, stream).ConfigureAwait(false);
                }
                finally
                {
                    if (operation != null)
                    {
                        disposeTask = operation.DisposeAsync();
                    }
                }

                if (disposeTask != null)
                {
                    await disposeTask.ConfigureAwait(false);
                }
            }
        }
Ejemplo n.º 4
0
        public override async Task ImportData(SmugglerImportOptions importOptions, SmugglerOptions options, Stream stream)
        {
            SetSmugglerOptions(options);

            SmugglerJintHelper.Initialize(options);

            using (store = CreateStore(importOptions.To))
            {
                Task disposeTask;

                try
                {
                    operation = new ChunkedBulkInsertOperation(store.DefaultDatabase, store, store.Listeners, new BulkInsertOptions
                    {
                        BatchSize         = options.BatchSize,
                        OverwriteExisting = true
                    }, store.Changes(), options.ChunkSize, SmugglerOptions.DefaultDocumentSizeInChunkLimitInBytes);

                    operation.Report += text => ShowProgress(text);

                    await base.ImportData(importOptions, options, stream);
                }
                finally
                {
                    disposeTask = operation.DisposeAsync();
                }

                if (disposeTask != null)
                {
                    await disposeTask;
                }
            }
        }
Ejemplo n.º 5
0
        protected override async Task PutDocument(RavenJObject document)
        {
            if (document == null)
            {
                return;
            }

            var metadata = document.Value <RavenJObject>("@metadata");
            var id       = metadata.Value <string>("@id");

            document.Remove("@metadata");

            operation.Store(document, metadata, id);
            storedDocumentCountInBatch++;
            if (storedDocumentCountInBatch >= currentBatchSize && currentBatchSize > 0)
            {
                storedDocumentCountInBatch = 0;
                await operation.DisposeAsync();

                operation = store.BulkInsert(options: new BulkInsertOptions
                {
                    BatchSize       = currentBatchSize,
                    CheckForUpdates = true
                });

                operation.Report += text => ShowProgress(text);
            }
        }
Ejemplo n.º 6
0
        public override async Task ImportData(SmugglerImportOptions <RavenConnectionStringOptions> importOptions, Stream stream)
        {
            using (store = CreateStore(importOptions.To))
            {
                Task disposeTask;

                try
                {
                    await CreateBulkInsertOperation();

                    await base.ImportData(importOptions, stream);
                }
                finally
                {
                    disposeTask = operation.DisposeAsync();
                }

                if (disposeTask != null)
                {
                    await disposeTask;
                }
            }
        }