繁体   English   中英

有什么办法可以先重定向页面然后执行剩余的代码

[英]Is there any way to redirect the page first then execute the remaining code

我是azure Web应用程序的新手,是否有任何方法可以先重定向页面,然后执行其余代码? 我处于必须首先重定向页面然后执行其余代码的情况……实际上,我已将代码部署在azure Web应用程序上,该应用程序请求超时约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
 }

如果您处理繁重的操作会导致HTTP超时,建议您将处理任务卸载到WebJob或Azure函数中。 它的工作方式如下:

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

  2. 设置一个单独的WebJob或Azure函数,以监视您的服务总线队列中的消息。 收到消息后,WebJob / Function可以执行处理。

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

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

如上所述,Azure存储队列和WebJob中的异步操作可以帮助解决这种情况

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM