美文网首页
订单下载服务自动化设计

订单下载服务自动化设计

作者: 05b0963bb480 | 来源:发表于2018-12-07 05:36 被阅读8次

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

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

    相关文章

      网友评论

          本文标题:订单下载服务自动化设计

          本文链接:https://www.haomeiwen.com/subject/xialcqtx.html