DBQueryBatchRequestHandler.cs 936 B

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using System.Collections.Generic;
  3. using ETModel;
  4. namespace ETHotfix
  5. {
  6. [MessageHandler(AppType.DB)]
  7. public class DBQueryBatchRequestHandler : AMRpcHandler<DBQueryBatchRequest, DBQueryBatchResponse>
  8. {
  9. protected override async void Run(Session session, DBQueryBatchRequest message, Action<DBQueryBatchResponse> reply)
  10. {
  11. DBQueryBatchResponse response = new DBQueryBatchResponse();
  12. try
  13. {
  14. DBCacheComponent dbCacheComponent = Game.Scene.GetComponent<DBCacheComponent>();
  15. List<ComponentWithId> components = await dbCacheComponent.GetBatch(message.CollectionName, message.IdList);
  16. response.Components = components;
  17. if (message.NeedCache)
  18. {
  19. foreach (ComponentWithId component in components)
  20. {
  21. dbCacheComponent.AddToCache(component, message.CollectionName);
  22. }
  23. }
  24. reply(response);
  25. }
  26. catch (Exception e)
  27. {
  28. ReplyError(response, e, reply);
  29. }
  30. }
  31. }
  32. }