尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
電商管理綜合平台訂單下載服務
我們開發的電商管理綜合平台,分為電商ERP客戶端和後台訂單下載服務兩個部分,其中訂單下載服務是將一個自動化的服務,統一下載各平台的訂單到電商業務庫,交由電商ERP客戶端處理。
哪些任務可以設置為自動任務
目前,後台訂單下載服務除了負責下載各平台的訂單外,還可以執行批量自動發貨和退款訂單實時標記等一系列自動化任務。如果本地倉庫的庫存需要同步至線上庫存,也是可以建立一個同步庫存服務的,這樣的話,經營人員或者客服就不會擔心因為庫存問題,導致商品被下架了。
訂單下載自動化服務
- 按平台的不同,分別編寫下載類;
- 每個下載類里,包含多個公共方法,供自動化任務類調用;公共方法包括下載訂單、自動發貨、退款標記等等;
- 自動化任務類將定時運行下載類里的公共方法,完成各項任務。
解決方案
自動化任務類關鍵代碼
public static void ThreadFunc()
{
///<summary>
///對象初始化
///</summary>
//標記服務開始*/
bStarted = true;
/*系統服務心跳,單位:秒*/
double setHeart = 1;
/*任務調用默認間隔,單位:分鐘*/
int setTaskTimeDefault = 30;
int setTaskTime;
///<summary>
/// 獲取本地配置信息,ini文件讀取
/// </summary>
string TaskRunTime = ConfigurationManager.AppSettings[“DownOrderTime”].Trim();
try
{
int nTaskRunTime = int.Parse(TaskRunTime);
// 判斷讀取的任務運行間隔時間是否大於一天或者小於1
if (nTaskRunTime < 1 || nTaskRunTime > 1440)
setTaskTime = setTaskTimeDefault; else
setTaskTime = nTaskRunTime;
}
catch
{
// 異常情況使用默認值
setTaskTime = setTaskTimeDefault;
}
DateTime dtLast = System.DateTime.Now;
DateTime dtNow = System.DateTime.Now;
TimeSpan ts;
bool bFistRun = true;
bool bTaskTime = false;
/// <summary>
/// 主循環
/// </summary>
while (true)
{
/*檢查是否終止服務*/
if (bSetStop)
break;
/*心跳*/
System.Threading.Thread.Sleep((int)(setHeart * 1000));
/*檢測所有模塊列表,確認是否有定時任務需要下發*/
dtNow = System.DateTime.Now;
ts = dtNow – dtLast;
bTaskTime = (ts.Minutes >= setTaskTime) ? true : false;
if (bFistRun || bTaskTime)
{
dtLast = dtNow;
bFistRun = false;
objTask.TaskRunDownOrder();
//執行訂單下載任務
}
}
// 結束服務
bStarted = false;
}