在大量将http请求装载到另一个函数期间,该函数不会返回任何结果

问题描述

我正在尝试创建为用户返回所有对话消息的函数,在正常测试中,它运行正常,没有任何问题,但是当我测试另一个函数时, createMessage 却带有大量的http请求同时请求大约15000 我注意到另一个函数 fillMessageHistory 需要很长时间才能返回消息(我认为这是等待创建消息完成然后返回对话),所以我该怎么办即使另一个用户保留了创建消息,仍然使填充消息函数返回数据,这与函数之间没有关系也很奇怪。 我该如何解决这个问题:

   public async Task<List<MessageDto>> getMessageHistory(long userId,string placeCode,long ReciverPlceId,long userRoleFlag)
        {

            await UpdateMessageStatus(userId,placeCode,ReciverPlceId,userRoleFlag);

            return await _repository.GetAllIncluding(x => x.listOReciverPlceMessages).Where(x => (x.receiverID == userId|| x.CreatorUserId == userId) && x.placeCode== placeCode&& x.listOReciverPlceMessages.Any(x => x.ReciverPlceId== ReciverPlceId)).OrderBy(message => message.CreationTime)
            .Select(x => new MessageDto
            {
                Id = x.Id,ReciverPlceId = x.listOReciverPlceMessages.Where(x => x.ReciverPlceId== ReciverPlceId).Select(x => x.ReciverPlceId).FirstOrDefault(),CreatorUserId = x.CreatorUserId,placeCode= x.placeCode,receiverID = x.receiverID,receiverUserName = x.receiverUserName,Text = x.Text,UserName = x.UserName,CreationTime = x.CreationTime

            }).ToListAsync();
        }

创建消息功能

 public  async Task<Message> CreateMessage(CreateMessageDto input)
        {
           

            var ReciverPlceMessages= ObjectMapper.Map<ReciverPlceMessages>(input.ReciverPlceMessages);
            ReciverPlceMessages.message = ObjectMapper.Map<Message>(input);
            var result=await _repository.GetDbContext().Set<ReciverPlceMessages>().AddAsync(ReciverPlceMessages);
             await _repository.GetDbContext().SaveChangesAsync();
            if (input.receiverID == 0)
            {

                await sendMessageNotificationForTheUserAsync(input.receiverID);
            }

            return ObjectMapper.Map < Message > (input);
        }

问题摘要是:
由于我的创建功能正在运行,因此我的读取功能未返回数据或花费了很长时间读取数据。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)