public SubscibeLogModel(SubscibeModel model, string responseContent) { this.OrderId = model.OrderId; this.DeliveryCompany = model.SubscibeBody.DeliveryCompany; this.DeliveryCode = model.SubscibeBody.DeliveryCode; this.SubscibeResult = model.SubscibeResult; this.ResponseContent = responseContent; }
public void Execute(IJobExecutionContext context) { lock (Logger) { var jobName = JsonConvert.SerializeObject(context.JobDetail.Key); Logger.Info("启动任务"); var source = DeliveryHelper.SelectSubscibeDeliveryModels(); Logger.InfoFormat("获得{0}个需要订阅的快递", source.Count()); foreach (var delivery in source) { if (!_isStop) { lock (this) if (!_isStop) { var model = new SubscibeModel(delivery); try { SubscibeLog.Info(new SubscibeLogModel(model, Subscibe(model))); if (model.SubscibeResult) { DeliveryHelper.SubscribeDelivery(delivery.DeliveryCompany, delivery.DeliveryCode); } } catch (Exception ex) { Logger.Error(ex.Message, ex); SubscibeLog.Error(new SubscibeLogModel(model, null), ex); } continue; } } Logger.Info("任务被终止"); break; } Logger.Info("结束任务"); } }
private string Subscibe(SubscibeModel model) { model.SubscibeBody.Parameters.Salt = DeliverySystem.GetKuaidi100Salt(model.SubscibeBody.DeliveryCompany, model.SubscibeBody.DeliveryCode).ToString(); var json = model.SubscibeBody.ToString(); var postVars = new NameValueCollection(); postVars.Add("schema", "json"); postVars.Add("param", json); var responseBuffer = WebClient.UploadValues(ConfigurationManager.AppSettings["DeliverySubscibeJob:SubscibeUrl"], "POST", postVars); var responseString = Encoding.UTF8.GetString(responseBuffer); var responseResult = JsonConvert.DeserializeObject <ResponseResultModel>(responseString); model.SubscibeResult = responseResult.Result; if (!model.SubscibeResult && responseResult.ReturnCode != 501) { Logger.Info("快递订阅失败,请求内容:" + JsonConvert.SerializeObject(model) + ";响应内容:" + responseString); } return(responseString); }