C# 中web如何定時同步數(shù)據(jù)
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
之前做定時器同步方法試過很多方法, 不過都有些問題: 1)quartz + IIS 方式(web項目發(fā)布到IIS上,出現(xiàn)IIS應用池回收問題) 2)用線程Timer方式 (出現(xiàn)多個線程同步同個任務問題) 3)window計劃任務+ api方法 方式 4)quartz+ window服務(暫不到怎么弄) 最后確定用第(3)種方式,解決了定時同步數(shù)據(jù)問題。 假如我們需要每隔5分鐘定時同步數(shù)據(jù),那么做一個api 同步方法映射到外部可調用,然后用window計劃任務做一個任務,定時調用批處理文件(文件包含調用api方法的語法)。我這邊做一個每隔5分鐘調用方法獲取數(shù)據(jù)demo: 1、api方法 ///
/// 獲取配送點列表(收貨客戶或送貨客戶) ///
/// 傳遞數(shù)據(jù)
///
[System.Web.Http.HttpPost]
public string GetDeliveryPointList([FromBody] JObject obj) {
MobileResult result = myService.GetDeliveryPointList(obj);
return JsonConvert.SerializeObject(result);
} 注意:這個方法外部可通過ajax調用的到,如果是要同步數(shù)據(jù),那邊方法改成可同步數(shù)據(jù)方法。 2、配置curl表達式 @echo off curl --data "PAGE_NUM=1&ROW_NUM=5" http://14.23.113.2:9698/api/IPhoneApp/MobileApp/GetDeliveryPointList/1 | iconv -f utf-8 -t gbk >>D:\Sync\SyncFuns_log.txt exit 將1(curl.exe)文件復制到C:\Windows\System32\目錄下,將2(libiconv.exe)安裝后,將安裝路徑添加到環(huán)境變量Path中 , C:\Program Files (x86)\GnuWin32\bin ,將上面curl表達式保存成批處理文件(SyncFuns.bat) 4、創(chuàng)建window計劃任務 1)創(chuàng)建基本任務 1.1)常規(guī)(選中圈中的的內容) 1.2)觸發(fā)器 新增觸發(fā)器,選中重復任務間隔5分鐘,持續(xù)時間為無限期 1.3)操作 新增任務,選中批處理文件(SyncFuns.bat) 1.4) 條件 電源記得去掉,如果電腦沒插電源,計劃任務不會觸發(fā) 5、啟用計劃任務 查看運行結果:
該文章在 2021/3/8 9:23:34 編輯過 |
關鍵字查詢
相關文章
正在查詢... |