訂單下載服務自動化設計

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

電商管理綜合平台訂單下載服務

我們開發的電商管理綜合平台,分為電商ERP客戶端和後台訂單下載服務兩個部分,其中訂單下載服務是將一個自動化的服務,統一下載各平台的訂單到電商業務庫,交由電商ERP客戶端處理。

哪些任務可以設置為自動任務

目前,後台訂單下載服務除了負責下載各平台的訂單外,還可以執行批量自動發貨和退款訂單實時標記等一系列自動化任務。如果本地倉庫的庫存需要同步至線上庫存,也是可以建立一個同步庫存服務的,這樣的話,經營人員或者客服就不會擔心因為庫存問題,導致商品被下架了。

訂單下載自動化服務

  1. 按平台的不同,分別編寫下載類;
  2. 每個下載類里,包含多個公共方法,供自動化任務類調用;公共方法包括下載訂單、自動發貨、退款標記等等;
  3. 自動化任務類將定時運行下載類里的公共方法,完成各項任務。

訂單下載服務自動化設計

解決方案

自動化任務類關鍵代碼

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;

}