前兩篇《.net core實踐系列之短信服務-Sikiro.SMS.Api服務的實作》、《.net core實踐系列之短信服務-Api的SDK的實作與測試》分别講解了API提供服務與SDK調用API實作。
本篇會繼續講解Sikiro.SMS.Bus的服務實作,此實作是基于開篇的架構設計的擁有排程任務服務,在最後一篇會給架構優化的,抛棄了排程任務服務使用MQ代替。
源碼位址:https://github.com/SkyChenSky/Sikiro.SMS

如上圖所示,消費者訂閱到消費消息後,通過工廠類建立出對應的短信營運商類,通過調用Send方法進行對短信營運商服務請求,得到響應結果後對持久化資料的狀态進行更新。假如中途遇到異常則復原資料狀态,等待下一次排程任務進行排程。
下面是MainService的代碼示例:
下面是SmsService的代碼示例:
對于有在.Net Framework上開發Windows服務的朋友對TopShelf應該會很熟悉。
優勢主要展現下面三點:
基于控制台應用
調試友善
易于安裝部署
不少人認為,Core的出現,跨平台加指令行的優勢,可以輕易的在Linux部署守護程序。難道還需要宿主架構?
然而并不是所有公司選用了Linux系統的伺服器,就像我們公司。既然使用了Windows伺服器應該将他部署為Windows服務使其可視化友善管理,另外沒有等待到TopShelf的Core版本,是以我選擇了另一款宿主架構:PeterKottas.DotNetCore.WindowsService
源碼位址:https://github.com/PeterKottas/DotNetCore.WindowsService
雖然比不起TopShelf的功能強大,但是對于一般的需求使用基本滿足,而且使用方式也與TopShelf相似。下面是使用示例:
下面是安裝解除安裝的指令示例:“
這裡就是本篇的内容,相比于前面幾篇的内容相對少點,如果有中途來看的朋友可以把《.net core實踐系列之短信服務-架構設計》看看作個補充,如果有任何建議,可以在下方評論回報給我。
作 者:
陳珙
出 處:http://www.cnblogs.com/skychen1218/
關于作者:專注于微軟平台的項目開發。如有問題或建議,請多多賜教!
版權聲明:本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連結。
聲援部落客:如果您覺得文章對您有幫助,可以點選文章右下角推薦一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!