DBQueryBatchRequestHandler.cs 912 字节
Newer Older
T
tanghai 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
using System;
using System.Collections.Generic;
using Model;

namespace Hotfix
{
	[MessageHandler(AppType.DB)]
	public class DBQueryBatchRequestHandler : AMRpcHandler<DBQueryBatchRequest, DBQueryBatchResponse>
	{
		protected override async void Run(Session session, DBQueryBatchRequest message, Action<DBQueryBatchResponse> reply)
		{
			DBQueryBatchResponse response = new DBQueryBatchResponse();
			try
			{
				DBCacheComponent dbCacheComponent = Game.Scene.GetComponent<DBCacheComponent>();
T
tanghai 已提交
16
				List<Disposer> disposers = await dbCacheComponent.GetBatch(message.CollectionName, message.IdList);
T
tanghai 已提交
17

T
tanghai 已提交
18
				response.Disposers = disposers;
T
tanghai 已提交
19 20 21

				if (message.NeedCache)
				{
T
tanghai 已提交
22
					foreach (Disposer disposer in disposers)
T
tanghai 已提交
23
					{
T
tanghai 已提交
24
						dbCacheComponent.AddToCache(disposer, message.CollectionName);
T
tanghai 已提交
25 26 27 28 29 30 31 32 33 34 35 36
					}
				}

				reply(response);
			}
			catch (Exception e)
			{
				ReplyError(response, e, reply);
			}
		}
	}
}