有没有办法首先重定向页面然后执行剩余的代码

时间:2018-02-06 12:59:33

标签: c# asp.net azure redirect

我是azure web app的新手,有没有办法首先重定向页面然后执行剩余的代码?我陷入困境,我必须首先重定向我的页面,然后执行剩余的代码......实际上我已经在azure web app上部署了我的代码,请求超时约4分钟(这是不可配置的),我的代码采取大约15分钟执行,我想重定向到主页并在后台执行剩余的代码。我已经尝试了线程和并行编程也仍然没有运气..我无法克服我的网页每次请求超时的时间框架。有没有人可以建议的方式?

感谢您的帮助!

/*functionA and functionB are not execute after redirecting.*/
private static async Task <int> functionA(para1, para2)
{ 
   Task<int> temp1 = await functionB(y,z); 
    return int;
 }

 private static async Task<int> functionB(para1, para2)
 {
    return int;
 }
/* This method will execute first  */
 private string functionC(para1, para2, para3)
 {
    console.log("hello world");
    redirect.response("www.xyz.com");
    Task<int> temp = await functionA(x,y);

    return str; //return string type value
 }

2 个答案:

答案 0 :(得分:0)

如果您的处理繁重会导致HTTP超时,我建议您考虑将处理卸载到WebJob或Azure功能。它的工作原理如下:

  1. Azure WebApp收到长时间运行的HTTP请求。它收集必要的信息,创建服务总线队列消息,并关闭消息。然后,您的WebApp通过告知用户处理已开始来响应用户。

  2. 提供单独的WebJob或Azure功能,用于监视服务总线队列中的消息。收到消息后,WebJob / Function可以执行处理。

  3. 您可能希望告诉用户操作何时完成以及结果如何。你有几个选择。最简单的方法是使用SignalR将操作已完成的通知推送给您的用户。不太复杂的是让WebJob / Function更新数据库记录,然后让HTTP客户端轮询结果。

  4. 我亲自将此模式与Service Bus Queues / WebJobs / SignalR一起使用,并对结果非常满意。

答案 1 :(得分:0)

Azure存储队列和WebJobs中的异步操作可以帮助处理所述情况 我已经提到了这个

  

https://dev.office.com/patterns-and-practices-detail/2254