Sqlite pooling for connections and commands (#193)
* add ServerObjectManagerFactory
* add usage of a command pool
* add more disposal
* save saving increase
* fix tests
* fixes
* push out concurrency and disposablity
* Add a custom task scheduler
* Better usage, don't wait to enqueue to save to channels
* Completely pre-cal batch size to avoid spinning issues
* Try to fix cache counting
* properly dispose things
* format
* clean up
* adjust count and save on current thread
* move batch it's own file
* update a few packages
* fix build and add batch tests
* revert and format
* Revert "save saving increase"
This reverts commit 3b50c857fb.
* revert change
* adjust and add tests
* Dispose sqlite manager properly
* Make Batch a IMemoryOwner to allow for pooling
* Fix tests
* Upgrade some deps
* try to make tests more explicit
* remove return value
* Use named tuple for all objects
This commit is contained in:
@@ -3,9 +3,7 @@ using System.Reflection;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Speckle.Sdk;
|
||||
using Speckle.Sdk.Credentials;
|
||||
using Speckle.Sdk.Helpers;
|
||||
using Speckle.Sdk.Host;
|
||||
using Speckle.Sdk.Logging;
|
||||
using Speckle.Sdk.Models;
|
||||
using Speckle.Sdk.Serialisation.V2;
|
||||
using Speckle.Sdk.Serialisation.V2.Receive;
|
||||
@@ -43,12 +41,11 @@ var token = serviceProvider.GetRequiredService<IAccountManager>().GetDefaultAcco
|
||||
var progress = new Progress(true);
|
||||
|
||||
var factory = new SerializeProcessFactory(
|
||||
serviceProvider.GetRequiredService<ISpeckleHttp>(),
|
||||
serviceProvider.GetRequiredService<ISdkActivityFactory>(),
|
||||
new BaseChildFinder(new BasePropertyGatherer()),
|
||||
new ObjectSerializerFactory(new BasePropertyGatherer()),
|
||||
new ObjectDeserializerFactory(),
|
||||
serviceProvider.GetRequiredService<ISqLiteJsonCacheManagerFactory>()
|
||||
serviceProvider.GetRequiredService<ISqLiteJsonCacheManagerFactory>(),
|
||||
serviceProvider.GetRequiredService<IServerObjectManagerFactory>()
|
||||
);
|
||||
var process = factory.CreateDeserializeProcess(new Uri(url), streamId, token, progress, new(skipCacheReceive));
|
||||
var @base = await process.Deserialize(rootId, default).ConfigureAwait(false);
|
||||
|
||||
Reference in New Issue
Block a user