chore(infra): fix qdrant healthcheck and reader canvas dotnet object reference leaks
This commit is contained in:
@@ -59,7 +59,7 @@ services:
|
||||
volumes:
|
||||
- qdrant_test_data:/qdrant/storage
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "bash -c 'exec 3<>/dev/tcp/127.0.0.1/6333'"]
|
||||
test: ["CMD-SHELL", "curl -sf http://localhost:6333/healthz || exit 1"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
@@ -141,6 +141,7 @@
|
||||
{
|
||||
if (firstRender)
|
||||
{
|
||||
_selfReference = DotNetObjectReference.Create(this);
|
||||
await SyncService.InitializeAsync();
|
||||
_isInteractive = true;
|
||||
if (ViewModel != null)
|
||||
@@ -173,11 +174,13 @@
|
||||
try
|
||||
{
|
||||
var module = await EnsureViewportModuleAsync();
|
||||
_selfReference = DotNetObjectReference.Create(this);
|
||||
var isMobileViewport = await module.InvokeAsync<bool>("isMobileViewport");
|
||||
await OnViewportChanged(isMobileViewport);
|
||||
if (_selfReference != null)
|
||||
{
|
||||
await module.InvokeVoidAsync("registerViewportObserver", _selfReference);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.LogWarning(ex, "Failed to initialize viewport detection in ReaderCanvas.");
|
||||
@@ -199,7 +202,10 @@
|
||||
try
|
||||
{
|
||||
var module = await JS.InvokeAsync<IJSObjectReference>("import", "./_content/NexusReader.UI.Shared/js/selectionHandler.js");
|
||||
await module.InvokeVoidAsync("initSelectionListener", DotNetObjectReference.Create(this), _containerRef);
|
||||
if (_selfReference != null)
|
||||
{
|
||||
await module.InvokeVoidAsync("initSelectionListener", _selfReference, _containerRef);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -214,8 +220,11 @@
|
||||
try
|
||||
{
|
||||
var module = await JS.InvokeAsync<IJSObjectReference>("import", "./_content/NexusReader.UI.Shared/js/readerObserver.js");
|
||||
await module.InvokeVoidAsync("initObserver", DotNetObjectReference.Create(this), ".reader-flow-container", ".block-wrapper");
|
||||
_scrollListenerReference = await module.InvokeAsync<IJSObjectReference>("initScrollListener", DotNetObjectReference.Create(this), ".reader-flow-container");
|
||||
if (_selfReference != null)
|
||||
{
|
||||
await module.InvokeVoidAsync("initObserver", _selfReference, ".reader-flow-container", ".block-wrapper");
|
||||
_scrollListenerReference = await module.InvokeAsync<IJSObjectReference>("initScrollListener", _selfReference, ".reader-flow-container");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -454,7 +463,10 @@
|
||||
await _scrollListenerReference.DisposeAsync();
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.LogDebug(ex, "Teardown of scroll listener reference failed in ReaderCanvas disposal.");
|
||||
}
|
||||
|
||||
_selfReference?.Dispose();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user