我想知道.NET程式員是如何處理 "大 "任務的。
例如,一個網站用戶上傳了一個視頻檔案,我們的服務應該為其添加一些視覺效果。
在 Python 中,我將使用 Celery(或者僅僅是 crontab)或 RabbitMQ 與一些微服務,以便與網站的執行執行緒分開運行該任務。
我知道有 async/await。我的直覺是,我可以使用async/await方法輕松地完成一些不重要的事情--比如,提出一個json請求,然后等待它被執行。但是,真正繁重的任務似乎最好在一個單獨的應用程式或微服務中執行。我說的對嗎?
但是.NET的方法是什么呢?
uj5u.com熱心網友回復:
我確實建議在webservers行程之外進行。你可以使用Worker Service來實作這一目標。作業者服務實際上是為了完成這種繁重的作業。結合像Quartz這樣堅固耐用的調度系統,您可以定期掃描新的視頻檔案并處理它們。我曾(在生產中)使用這兩者的組合來運行相當多的網路服務器外的行程作業,并取得了巨大的成功。
uj5u.com熱心網友回復:
如果包括以下要求,微服務是這些場景的一個很好的解決方案。否則,建議使用https://docs.microsoft.com/en-us/dotnet/core/extensions/workers
何時使用微服務:
1- 當您希望您的單體應用能夠適應可擴展性、敏捷性、可管理性和交付速度時。
2- 當您必須用當今的編程語言或技術堆疊重寫傳統應用程式以跟上現代業務需求和解決方案時。
3- 當您有獨立的業務應用程式或模塊需要被重用時。
3- 當您有獨立的業務應用程式或模塊需要在不同的渠道中重復使用時--一些好的例子是登錄服務、搜索選項認證設施等。
4- 如果您正在構建一個高度敏捷的應用程式(產品或服務),需要快速的交付速度和創新等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/322809.html
標籤:
上一篇:如何從JSON物件中獲取特定值
下一篇:基于公共元素合并2個陣列
