using Dpz.Core.MessageQueue.Abstractions;
using Dpz.Core.MessageQueue.Models;
using Dpz.Core.Public.ViewModel.Messages;
namespace Dpz.Core.Web.EventHandlers;
public class RefreshUserProfileMessageHandler(
IFusionCache fusionCache,
ILogger<RefreshUserProfileMessageHandler> logger
) : IMessageHandler<RefreshUserProfileMessage>
{
public async Task<MessageHandlerResult> HandleAsync(
RefreshUserProfileMessage message,
CancellationToken cancellationToken = default
)
{
if (string.IsNullOrWhiteSpace(message.Account))
{
logger.LogWarning("RefreshUserProfileMessage: Account is null or empty");
return MessageHandlerResult.Ok();
}
await fusionCache.SetAsync(
UserSessionKeys.ChangedAtKey(message.Account),
message.ChangedAt,
TimeSpan.FromDays(30),
token: cancellationToken
);
logger.LogInformation(
"User profile refresh marker updated: Account={Account}, Version={Version}, ChangedAt={ChangedAt}",
message.Account,
message.Version,
message.ChangedAt
);
return MessageHandlerResult.Ok();
}
}
AI 正在分析代码…
评论加载中...