Ejemplo n.º 1
0
        //实现获取请求参数方法
        protected override AbstractRequestParams GetParams()
        {
            //查历史同步记录
            var jobRecord = Helper.GetWhere(new SyncJob_Definition()
            {
                JobClassName = this.JobName
            }).FirstOrDefault();

            var pars = new LH_ProductParam();

            pars.attr1 = DealerCode;
            if (jobRecord == null)
            {
                pars.attr2 = "2019-01-02 10:28:54";

                jobRecord = new SyncJob_Definition();
                jobRecord.JobClassName = this.JobName;
                jobRecord.LastExecute  = DateTime.Now;
            }
            else
            {
                var attrs = JsonConvert.DeserializeAnonymousType(jobRecord.ParsJson,
                                                                 new { attr1 = "", attr2 = "", attr3 = "" });
                //如果已存在同步历史,取上一次同步参数的结束时间再往前5分钟作为本次同步的开始时间
                pars.attr2 = DateTime.Parse(attrs.attr3).AddMinutes(-5).ToString(DateTimeFormat);
            }

            pars.attr3 = DateTime.Now.ToString(DateTimeFormat);

            return(pars);
        }
Ejemplo n.º 2
0
        protected override AbstractRequestParams GetParams()
        {
            //查历史同步记录
            var jobRecord = Helper.GetWhere <SyncJob_Definition>(new SyncJob_Definition()
            {
                JobClassName = this.JobName
            }).FirstOrDefault();

            var pars = new AcctOAStatusParam();

            pars.acctCode = ConfigurationManager.AppSettings["dealerCode"];
            if (jobRecord == null)
            {
                jobRecord = new SyncJob_Definition();
                jobRecord.JobClassName = this.JobName;
                jobRecord.LastExecute  = DateTime.Now;
            }
            return(pars);
        }
Ejemplo n.º 3
0
        public void Execute(IJobExecutionContext context)
        {
            var where          = new SyncJob_Definition();
            where.JobClassName = this.JobName;
            var jobRecord = Helper.GetWhere(where).SingleOrDefault();

            if (jobRecord != null && jobRecord.LastExecute != null && (jobRecord != null && (DateTime.Now - jobRecord.LastExecute.Value).TotalMinutes < Interval))
            {
                //未达到设定同步间隔
                LogHelper.Info($"【{this.JobName}】同步时间未到");
                return;
            }

            LogHelper.Info($"作业开始:【{this.JobName}】");
            var start = DateTime.Now;

            Sync();
            var end = DateTime.Now - start;

            LogHelper.Info($"作业结束:【{this.JobName}】,耗时【{end.TotalMilliseconds}】毫秒");
        }
Ejemplo n.º 4
0
        protected bool UpdateSyncRecord(AbstractRequestParams pars)
        {
            //查历史同步记录
            var jobRecord = Helper.GetWhere <SyncJob_Definition>(new SyncJob_Definition()
            {
                JobClassName = this.JobName
            }).FirstOrDefault();
            //同步记录更新标记
            bool isUpdate = true;

            if (jobRecord == null)
            {
                //同步记录不存在,新建记录
                isUpdate  = false;
                jobRecord = new SyncJob_Definition();
                jobRecord.JobClassName = this.JobName;
            }
            jobRecord.LastExecute = DateTime.Now;
            jobRecord.ParsJson    = JsonConvert.SerializeObject(pars);
            //更新标记为true时更新同步记录,为false插入新的同步记录
            var result = isUpdate ? this.Helper.Update(jobRecord) : this.Helper.Insert(jobRecord);

            return(result);
        }