我有一個模擬股票市場的應用程式。其中一部分是生成價格變化并將其發布給消費者,大約每秒發送大約 100 次價格變化。市場交易的第二部分接收訂單,隨機執行它們并異步將執行報告發送回價格變化的同一消費者。
我想把它放在應用服務上,但問題是:
- 我希望價格生成器立即啟動并連續運行。
- 訂單執行只需要在訂單發送(異步)并且所有訂單都已執行或取消時運行。然后它可以關閉,直到收到另一個訂單。
似乎我被迫進入兩個桶之一,并且都不適用于我想做的事情。Web 作業看起來像 Windows 11 中的服務。它將立即啟動并運行,直到您將其關閉,但它沒有處理 ASP 型別控制器的邏輯。
只要我通過發布訂單將其喚醒,部署為應用服務就可以作業,但是直到我發送訂單后價格饋送才會開始。
那么問題來了:如何將 .NET Core 應用程式部署為應用服務并讓它自動啟動(無需通過初始 HTTP 呼叫喚醒它)?
uj5u.com熱心網友回復:
根據您的描述,我建議您可以考慮將價格饋送修改為 .net 核心應用程式中的后臺服務。后臺任務可以實作為托管服務。托管服務是具有實作 IHostedService 介面的后臺任務邏輯的類。
它包含 StartAsync 方法。StartAsync(CancellationToken) 包含啟動后臺任務的邏輯。StartAsync 之前被呼叫:
應用程式的請求處理管道已配置。服務器啟動并觸發 IApplicationLifetime.ApplicationStarted。
更多細節,你可以參考這篇文章。
此外,我建議您也可以將 Azure Web 應用程式的配置設定為 alwayson。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/457082.html
