关于 Aspire 应用宿主的编排

This commit is contained in:
administrator committed 2025-03-18 22:45:05 +08:00
1 parent c01868da0e
commit ade2f40524
3 files changed
+22 -17

No files matched your search

@@ -8,13 +8,12 @@ namespace HelloShop.AppHost.Extensions
{
public static class DaprSidecarResourceBuilderExtensions
{
public static IResourceBuilder<IDaprSidecarResource> WithReference(this IResourceBuilder<IDaprSidecarResource> builder, IResourceBuilder<IResourceWithConnectionString> resourceBuilder, int waitInSeconds = 10)
public static IResourceBuilder<IDaprSidecarResource> WithReferenceAndWaitFor(this IResourceBuilder<IDaprSidecarResource> builder, IResourceBuilder<IResourceWithConnectionString> resourceBuilder)
{
builder.WithAnnotation(new EnvironmentCallbackAnnotation(async context =>
{
var notificationService = context.ExecutionContext.ServiceProvider.GetRequiredService<ResourceNotificationService>();
await notificationService.WaitForResourceAsync(resourceBuilder.Resource.Name, KnownResourceStates.Running);
await Task.Delay(TimeSpan.FromSeconds(waitInSeconds));
await notificationService.WaitForResourceHealthyAsync(resourceBuilder.Resource.Name);
var connectionStringName = resourceBuilder.Resource.ConnectionStringEnvironmentVariable ?? $"ConnectionStrings__{resourceBuilder.Resource.Name}";
context.EnvironmentVariables[connectionStringName] = new ConnectionStringReference(resourceBuilder.Resource, false);
}));