.Net Aspire, rabbit, redis, AspireDemoApp03
------------------------------------------------------------------------------------
rabbit, redisD:\Projects\VS\2605\Aspire\Qwen\AspireDemoApp02\AspireDemoApp02.slnx
D:\Projects\VS\2605\Aspire\Qwen\AspireDemoApp02\AspireDemoApp02.AppHost\AspireDemoApp.AppHost.csproj
Отсутствует WaitFor
var builder = DistributedApplication.CreateBuilder(args); var redis = builder.AddRedis("redis"); var rabbitmq = builder.AddRabbitMQ("rabbitmq"); var apiServiceA = builder.AddProject<Projects.AspireDemoApp_ApiServiceA>("apiservicea") .WithReference(redis) .WithReference(rabbitmq); // <--- ИСПРАВЛЕНИЕ: удаляем .WithEnvironment(...) var apiServiceB = builder.AddProject<Projects.AspireDemoApp_ApiServiceB>("apiserviceb") .WithReference(redis); builder.AddProject<Projects.AspireDemoApp_WorkerService>("workerservice") .WithReference(redis) .WithReference(rabbitmq); try { builder.Build().Run(); } catch(Exception ex) { Console.WriteLine($"AppHost: Exception: {ex.Message}");
}
-----------------------------------------------------------------------------------------------------------------------------
rabbit, redis
D:\Projects\VS\2605\Aspire\Qwen\AspireDemoApp03\AspireDemoApp03\AspireDemoApp03.slnx
D:\Projects\VS\2605\Aspire\Qwen\AspireDemoApp03\AspireDemoApp03\AspireDemoApp03.AppHost\AppHost.csproj
Работает. Есть WateFor
Не работает Ручка
https://localhost:7052/publish?msg=HelloAspireTest Ответ "✅ Published to 'my-channel': HelloAspireTest"// AppHost.cs var builder = DistributedApplication.CreateBuilder(args); var redis = builder.AddRedis("redis"); var rabbitmq = builder.AddRabbitMQ("rabbitmq") // Опционально: уменьшаем логирование контейнера .WithEnvironment("RABBITMQ_LOG_LEVEL", "warning"); // .WithWaitFor("rabbitmq"); var apiServiceA = builder.AddProject<Projects.ApiServiceA>("apiservicea") .WithReference(redis) .WithReference(rabbitmq) .WaitFor(rabbitmq) .WaitFor(redis); // <--- ИСПРАВЛЕНИЕ: удаляем .WithEnvironment(...) var apiServiceB = builder.AddProject<Projects.ApiServiceB>("apiserviceb") .WithReference(redis) .WaitFor(rabbitmq) .WaitFor(redis); builder.AddProject<Projects.WorkerService>("workerservice") .WithReference(redis) .WithReference(rabbitmq) .WaitFor(rabbitmq) .WaitFor(redis); try { builder.Build().Run(); } catch (Exception ex) { Console.WriteLine($"AppHost: Exception: {ex.Message}"); }
---------------
Ручкаapp.MapPost("/publish/{message}", async ( string message, IConnectionMultiplexer redis, ConnectionFactory factory) => { var db = redis.GetDatabase(); await db.StringSetAsync("demo:last-message", message); await using var connection = await factory.CreateConnectionAsync(); await using var channel = await connection.CreateChannelAsync(); await channel.QueueDeclareAsync( queue: "demo-queue", durable: false, exclusive: false, autoDelete: false, arguments: null); var body = Encoding.UTF8.GetBytes(message); await channel.BasicPublishAsync( exchange: string.Empty, routingKey: "demo-queue", body: body); return Results.Ok(new { published = message, redisKey = "demo:last-message", queue = "demo-queue" }); });
Комментариев нет:
Отправить комментарий