簡體   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