понедельник, 25 мая 2026 г.

Aspire, AspireRedisPubSub, Publish, Interaction, Qwen

Aspire, AspireRedisPubSub, Publish, Interaction,Qwen

https://chat.qwen.ai/c/806431e5-714d-4729-9a3f-90e4dc82a139

D:\Projects\VS\2605\Qwen\AspireRedisPubSub\AspireRedisPubSub.slnx

D:\Projects\VS\2605\Qwen\AspireRedisPubSub\AspireRedisPubSub.AppHost\AspireRedisPubSub.AppHost.csproj

ServiceA

builder.AddRedisClient("redis");

var app = builder.Build();

app.MapGet("/publish", async (IConnectionMultiplexer redis, string? msg) =>
{
    // var channel = "my-channel";
    var channel = RedisChannel.Literal("my-channel");
    // RedisChannel.Pattern("my-channel:*");

    var message = msg ?? "Hello from ServiceA!";

    // Получаем объект подписки из мультиплексора
    var subscriber = redis.GetSubscriber();
    await subscriber.PublishAsync(channel, message);


    return Results.Ok($"✅ Published to '{channel}': {message}");
});

app.MapDefaultEndpoints(); // для health checks

app.Run();
---------------------------------------------
ServiceB
// Подписываемся после успешного пинга (используем RedisChannel.Literal)
await subscriber.SubscribeAsync(RedisChannel.Literal("my-channel"), (channel, message) =>
{
    logger.LogInformation("📩 ServiceB received: {Message}", message);
});

Комментариев нет:

Отправить комментарий