【EasyNetQ】- 使用Future Publish调度事件
許多業(yè)務(wù)流程要求在將來某個(gè)日期安排事件。例如,在與客戶進(jìn)行初次銷售聯(lián)系后,我們可能希望在將來的某個(gè)時(shí)間安排跟進(jìn)電話。EasyNetQ可以通過其Future Publish功能幫助您實(shí)現(xiàn)此功能。例如,這里我們使用FuturePublish擴(kuò)展方法來安排未來一個(gè)月的后續(xù)銷售電話。請注意,FuturePublish使用UTC時(shí)間。
var followUpCallMessage = new FollowUpCallMessage( .. ); bus.FuturePublish(DateTime.UtcNow.AddMonths(3), followUpCallMessage);?
三個(gè)月后,EasyNetQ將發(fā)布消息,FollowUpCallMessage的任何訂閱者都將收到原始消息的副本。
FuturePublish要求EasyNetQ.Scheduler服務(wù)正在運(yùn)行。
它是如何工作的?
當(dāng)您調(diào)用bus.FuturePublish(publishDate,message)時(shí),EasyNetQ將您的消息包裝在系統(tǒng)消息“ScheduleMe”中并將其發(fā)布到RabbitMQ。調(diào)度程序服務(wù)訂閱此消息。收到ScheduleMe消息時(shí),它會將其存儲在本地?cái)?shù)據(jù)庫中。調(diào)度程序服務(wù)輪詢其數(shù)據(jù)庫以查找計(jì)劃日期到期的消息,當(dāng)它找到任何到期消息時(shí),它會從ScheduleMe消息中解包原始消息并將其發(fā)布到總線。
安裝調(diào)度程序服務(wù)
在SQL Server中,創(chuàng)建一個(gè)新的數(shù)據(jù)庫EasyNetQ.Scheduler
獲取EasyNetQ的源代碼
git clone?git@github.com?:mikehadlow/EasyNetQ.git
在Visual Studio中打開EasyNetQ.2012解決方案。在DatabaseScripts - > EasyNetQ.Scheduler文件夾中,您將找到許多SQL腳本。在EasyNetQ.Scheduler數(shù)據(jù)庫中打開并運(yùn)行它們。您將需要首先運(yùn)行CreateWorkTables.sql,其他是存儲過程腳本,并且可以按任何順序運(yùn)行。
構(gòu)建解決方案。
找到\ Source \ EasyNetQ.Scheduler \ bin \ Debug并將內(nèi)容復(fù)制到您選擇的部署文件夾中。
在文本編輯器中打開EasyNetQ.Scheduler.exe.config并將'rabbit'和'scheduleDb'連接字符串分別更改為指向RabbitMQ代理和SQL Server實(shí)例。
打開控制臺窗口并更改部署EasyNetQ.Scheduler的文件夾的路徑。
運(yùn)行以下命令將EasyNetQ.Scheduler安裝為Windows服務(wù):
EasyNetQ.Scheduler.exe install?
Configuration Result: [Success] Name EasyNetQ.Scheduler [Success] ServiceName EasyNetQ.Scheduler Topshelf v3.1.106.0, .NET Framework v4.0.30319.18051Running a transacted installation.Beginning the Install phase of the installation. Installing EasyNetQ.Scheduler service Installing service EasyNetQ.Scheduler... Service EasyNetQ.Scheduler has been successfully installed. Creating EventLog source EasyNetQ.Scheduler in log Application...The Install phase completed successfully, and the Commit phase is beginning.The Commit phase completed successfully.The transacted install has completed.?
您現(xiàn)在應(yīng)該可以調(diào)用FuturePublish并查看在指定時(shí)間顯示的消息。
要卸載EasyNetQ.Scheduler,請運(yùn)行:
EasyNetQ.Scheduler.exe uninstall?
?
轉(zhuǎn)載于:https://www.cnblogs.com/wangwust/p/9437486.html
總結(jié)
以上是生活随笔為你收集整理的【EasyNetQ】- 使用Future Publish调度事件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 光环无限通行证多少钱
- 下一篇: Unity - Humanoid设置Bi