#pragma warning disable CS1998 // 异步方法缺少 "await" 运算符,将以同步方式运行 public async Task SetFriendshipPayload(string friendshipId, FriendshipPayload newPayload) #pragma warning restore CS1998 // 异步方法缺少 "await" 运算符,将以同步方式运行 { if (Logger.IsEnabled(LogLevel.Trace)) { Logger.LogTrace($"friendshipPayload({friendshipId}){JsonConvert.SerializeObject(newPayload)}"); } _ = CacheFriendshipPayload.Set(friendshipId, newPayload); }
#pragma warning disable CS1998 // 异步方法缺少 "await" 运算符,将以同步方式运行 protected async Task FriendshipPayloadDirty(string friendshipId) #pragma warning restore CS1998 // 异步方法缺少 "await" 运算符,将以同步方式运行 { if (Logger.IsEnabled(LogLevel.Trace)) { Logger.LogTrace($"friendshipPayloadDirty({friendshipId})"); } _ = CacheFriendshipPayload.Delete(friendshipId); }
/// <summary> /// Get and Set /// </summary> /// <param name="friendshipId"></param> /// <returns></returns> public async Task <FriendshipPayload> GetFriendshipPayload(string friendshipId) { if (Logger.IsEnabled(LogLevel.Trace)) { Logger.LogTrace($"friendshipPayload({friendshipId})"); } //1. Try to get from cache first var cachedPayload = FriendshipPayloadCache(friendshipId); if (cachedPayload != null) { return(cachedPayload); } //2. Cache not found var rawPayload = await FriendshipRawPayload(friendshipId); var payload = await FriendshipRawPayloadParser(rawPayload); CacheFriendshipPayload.Set(friendshipId, payload); return(payload); }
protected FriendshipPayload?FriendshipPayloadCache(string friendshipId) { if (Logger.IsEnabled(LogLevel.Trace)) { Logger.LogTrace($"friendshipPayloadCache(id={friendshipId}) @ {this}"); } if (string.IsNullOrWhiteSpace(friendshipId)) { throw new ArgumentException("no id"); } var cachedPayload = CacheFriendshipPayload.Get(friendshipId); if (cachedPayload == null) { if (Logger.IsEnabled(LogLevel.Trace)) { Logger.LogTrace($"friendshipPayloadCache({friendshipId}) cache MISS"); } } return(cachedPayload); }