订单下载服务自动化设计

电商管理综合平台订单下载服务

我们开发的电商管理综合平台,分为电商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;
}