电商管理综合平台订单下载服务
我们开发的电商管理综合平台,分为电商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;
}
网友评论