zoukankan      html  css  js  c++  java
  • .Net调用接口处理时间过长,前端访问超时解决方案

    直接上代码

            public TaskInfo AutoUpClassTest(AutoUpClassInput input)
            {
                if (!string.IsNullOrEmpty(input.TaskId))
                {
                    //查询状态
                    var ts = _cache.Get("_AutoUpClass_" + input.TaskId);
                    if (ts != null)
                        return (TaskInfo)ts;
                    else
                        return new TaskInfo { Status = 2, TaskId = input.TaskId, Msg = "失败" };
                }
                else
                {
                    //首次
                    string g = Guid.NewGuid().ToString();
                    Task.Run(() =>
                    {
                        try
                        {
                            //漫长的操作
                            for (int i = 0; i < 30; i++)
                            {
                                Thread.Sleep(1000);
                                _cache.Set("_AutoUpClass_" + g, new TaskInfo { Status =0, Msg = "执行中", TaskId = g ,Progress=$"{i}/{30}" });
                            }
                           
                            //设置完成
                            _cache.Set("_AutoUpClass_" + g, new TaskInfo { Status = 1, Msg = "成功",TaskId = g });
                        }
                        catch (Exception)
                        {
                            //设置失败
                            _cache.Set("_AutoUpClass_" + g, new TaskInfo { Status = 2, Msg = "失败" ,TaskId = g });
                        }
                    });
    
                    var cacheEntryOptions = new MemoryCacheEntryOptions()
                        .SetSlidingExpiration(TimeSpan.FromMinutes(10));
                    //设置查询
                    var taskInfo = new TaskInfo { Status = 0, Msg = "执行中", TaskId = g };
                    _cache.Set("_AutoUpClass_" + g, taskInfo, cacheEntryOptions);
                    return taskInfo;
                }
            }

     执行效果

    作者:银龙

    -------------------------------------------

    个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

    万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

  • 相关阅读:
    C#读取系统信息
    C# 读取驱动器盘符及信息
    for循环里的break,continue和return有什么差别
    monkey
    ZXing
    python中os模块的常用接口和异常中Exception的运用
    python中的字典应用实例
    python中的列表和字典
    python中如何单独测试一个函数的作用
    数据挖掘概念与技术PDF
  • 原文地址:https://www.cnblogs.com/wangyinlon/p/15160497.html
Copyright © 2011-2022 走看看