private static Task ProcessMain() { var orderdata = "{\"chargingInfo\":{\"basicWeight\":{\"fee\":\"5\",\"weight\":\"3\"},\"stepWeight\":{\"fee\":\"2\",\"weight\":\"1\"},\"totalFee\":\"23\"},\"courierInfo\":{\"company\":\"天天快递\",\"courierNo\":\"199900\",\"courierPhone\":\"1381111111\",\"extendFields\":[{\"key\":\"PACKAGE_NO\",\"value\":\"DWD0018\"}],\"name\":\"张三\",\"station\":\"余杭网点\",\"stationPhone\":\"1381111111\"},\"cpCode\":\"SF\",\"dicCode\":\"DCP00098765\",\"expressPrintCode\":\"AeduSjkd\",\"logisticsId\":\"LBXDCP1023892594\",\"mailNo\":\"6201710180538\",\"opRequire\":{\"opDesc\":\"天猫全渠道的作业类型\",\"opType\":\"TMQQD\"},\"orderBizType\":\"1\",\"orderCreateTime\":\"2014-07-28 10:05:34\",\"orderExtendFields\":[{\"key\":\"A001\",\"value\":\"5000\"}],\"orderSource\":\"TB\",\"packageInfo\":{\"itemList\":[{\"extendFields\":\"is_precious:1;itemId:45571155013;serviceFlag:2;\",\"insuredAmount\":\"199900\",\"itemName\":\"毛衣\",\"itemNum\":\"1\"}],\"packageHeight\":\"50\",\"packageLength\":\"50\",\"packageVolume\":\"500000\",\"packageWeight\":\"200000\",\"packageWidth\":\"50\"},\"placeOrderType\":\"1\",\"receiver\":{\"address\":\"四川省成都市高新区新航路283号\",\"city\":\"成都\",\"county\":\"高新\",\"mobile\":\"15956874256\",\"name\":\"李某\",\"phone\":\"024-84332654\",\"province\":\"四川\",\"receiverDivisionId\":\"67991\",\"receiverTown\":\"文一路\",\"userId\":\"123456\",\"zipCode\":\"634569\"},\"remark\":\"\",\"routeInfo\":{\"after\":{\"address\":\"杭州市文一西路999号\",\"city\":\"杭州\",\"contactNumber\":\"13812345678\",\"contacts\":\"张三\",\"county\":\"高兴区\",\"cpCode\":\"CP001\",\"prov\":\"浙江\",\"town\":\"文一西路\"},\"before\":{\"address\":\"669号\",\"city\":\"杭州\",\"contactNumber\":\"138111111989\",\"contacts\":\"张三\",\"county\":\"高兴区\",\"cpCode\":\"T002\",\"prov\":\"浙江\",\"town\":\"文一西路\"},\"carrierCode\":\"T123568\",\"extendFields\":[{\"key\":\"SF_PRODUCT_CODE\",\"value\":\"1\"}],\"shortAddress\":\"浙-杭\",\"siteCode\":\"HX1\",\"siteName\":\"杭萧1站\"},\"sender\":{\"Town\":\"街道\",\"address\":\"浙江省杭州市余杭区文一西路823号\",\"city\":\"杭州\",\"county\":\"余杭\",\"customerId\":\"12792\",\"customerNo\":\"JD007689\",\"mobile\":\"13989203824\",\"name\":\"刘某\",\"phone\":\"0571-84292224\",\"province\":\"浙江\",\"senderAddressId\":\"7638290\",\"senderDivisionId\":\"67991\",\"senderTown\":\"街道\",\"userId\":\"123456\",\"zipCode\":\"638293\"},\"serviceDetail\":{\"codBuyServiceFee\":\"300\",\"codSplitFee\":\"100\",\"codTotalServiceFee\":\"500\",\"customerOrderTime\":\"2014-07-30 14:00:00\",\"endSignTime\":\"2015-09-11 17:00:00\",\"expressScheduleType\":\"101\",\"extendFields\":[{\"key\":\"A001\",\"value\":\"5000\"}],\"goodsValue\":\"10000\",\"gotEndTime\":\"204-11-30 19:00\",\"gotInTime\":\"30\",\"gotStartTime\":\"204-11-30 18:00\",\"grabOrderTime\":\"2014-07-30 14:00:00\",\"prevMailNo\":\"\",\"promiseSignTime\":\"2015-09-11 16:30:00\",\"scheduleDesc\":\"送达时间在2014-07-30 10:00:00到2014-07-30 14:00:00之间\",\"scheduleType\":\"104\",\"sendEndTime\":\"2014-07-30 13:05:34\",\"sendStartTime\":\"2014-07-30 12:05:34\",\"temperatureRequirement\":\"0-18\",\"totalFee\":\"600\",\"totalInsuredAmount\":\"23930\"},\"serviceFlag\":\"34,37\",\"tradeNo\":\"22227880099\"}"; var order = JsonConvert.DeserializeObject <TmsOrderModel>(orderdata); var dataList = GetOrderData(); var actions = new List <Action>(); foreach (var data in dataList) { actions.Add(() => { try { var t = Task.Run(() => PostRequest(order, data)); t.Wait(); } catch (AggregateException ae) { ae.Flatten(); //处理并行代码中的异常 foreach (var ex in ae.InnerExceptions) { //异常处理代码…… var message = new StringBuilder(); message.Append("多线程请求新增订单接口时发生错误:\n" + "参数:" + data); message.Append("订单内容:" + JsonConvert.SerializeObject(data)); message.Append(ex.Message + ex.StackTrace); Log.Set(message.ToString(), LogHandle.LogerType.Error); } } }); } return(Task.Run(() => Parallel.Invoke(new ParallelOptions { MaxDegreeOfParallelism = 4 }, actions.ToArray()))); }
/// <summary> /// 异步推送数据 /// </summary> /// <param name="url"></param> /// <param name="dictionary"></param> /// <returns></returns> public async Task <string> PostAsync(string url, Dictionary <string, string> dictionary) { try { var content = new FormUrlEncodedContent(dictionary); var response = _httpClient.PostAsync(url, content); var responseStr = await response.Result.Content.ReadAsStringAsync(); return(responseStr); } catch (HttpRequestException e) { var message = new StringBuilder(); message.Append("异步推送数据时,出现HttpRequestException异常,发生错误:\r\n"); message.Append("推送地址是:" + url + "\r\n"); message.Append("推送内容是:" + JsonConvert.SerializeObject(dictionary) + "\r\n"); message.Append("错误是:" + JsonConvert.SerializeObject(dictionary) + "\r\n"); message.Append(e.Message + e.StackTrace + e.Data); Logger.Set(message.ToString(), LogHandle.LogerType.Fatal); return(null); } }
private static async void ProcessMain() { await Task.Delay(0); var orderdata = "{\"chargingInfo\":{\"basicWeight\":{\"fee\":\"5\",\"weight\":\"3\"},\"stepWeight\":{\"fee\":\"2\",\"weight\":\"1\"},\"totalFee\":\"23\"},\"courierInfo\":{\"company\":\"天天快递\",\"courierNo\":\"199900\",\"courierPhone\":\"1381111111\",\"extendFields\":[{\"key\":\"PACKAGE_NO\",\"value\":\"DWD0018\"}],\"name\":\"张三\",\"station\":\"余杭网点\",\"stationPhone\":\"1381111111\"},\"cpCode\":\"SF\",\"dicCode\":\"DCP00098765\",\"expressPrintCode\":\"AeduSjkd\",\"logisticsId\":\"LBXDCP1023892594\",\"mailNo\":\"6201710180538\",\"opRequire\":{\"opDesc\":\"天猫全渠道的作业类型\",\"opType\":\"TMQQD\"},\"orderBizType\":\"1\",\"orderCreateTime\":\"2014-07-28 10:05:34\",\"orderExtendFields\":[{\"key\":\"A001\",\"value\":\"5000\"}],\"orderSource\":\"TB\",\"packageInfo\":{\"itemList\":[{\"extendFields\":\"is_precious:1;itemId:45571155013;serviceFlag:2;\",\"insuredAmount\":\"199900\",\"itemName\":\"毛衣\",\"itemNum\":\"1\"}],\"packageHeight\":\"50\",\"packageLength\":\"50\",\"packageVolume\":\"500000\",\"packageWeight\":\"200000\",\"packageWidth\":\"50\"},\"placeOrderType\":\"1\",\"receiver\":{\"address\":\"四川省成都市高新区新航路283号\",\"city\":\"成都\",\"county\":\"高新\",\"mobile\":\"15956874256\",\"name\":\"李某\",\"phone\":\"024-84332654\",\"province\":\"四川\",\"receiverDivisionId\":\"67991\",\"receiverTown\":\"文一路\",\"userId\":\"123456\",\"zipCode\":\"634569\"},\"remark\":\"\",\"routeInfo\":{\"after\":{\"address\":\"杭州市文一西路999号\",\"city\":\"杭州\",\"contactNumber\":\"13812345678\",\"contacts\":\"张三\",\"county\":\"高兴区\",\"cpCode\":\"CP001\",\"prov\":\"浙江\",\"town\":\"文一西路\"},\"before\":{\"address\":\"669号\",\"city\":\"杭州\",\"contactNumber\":\"138111111989\",\"contacts\":\"张三\",\"county\":\"高兴区\",\"cpCode\":\"T002\",\"prov\":\"浙江\",\"town\":\"文一西路\"},\"carrierCode\":\"T123568\",\"extendFields\":[{\"key\":\"SF_PRODUCT_CODE\",\"value\":\"1\"}],\"shortAddress\":\"浙-杭\",\"siteCode\":\"HX1\",\"siteName\":\"杭萧1站\"},\"sender\":{\"Town\":\"街道\",\"address\":\"浙江省杭州市余杭区文一西路823号\",\"city\":\"杭州\",\"county\":\"余杭\",\"customerId\":\"12792\",\"customerNo\":\"JD007689\",\"mobile\":\"13989203824\",\"name\":\"刘某\",\"phone\":\"0571-84292224\",\"province\":\"浙江\",\"senderAddressId\":\"7638290\",\"senderDivisionId\":\"67991\",\"senderTown\":\"街道\",\"userId\":\"123456\",\"zipCode\":\"638293\"},\"serviceDetail\":{\"codBuyServiceFee\":\"300\",\"codSplitFee\":\"100\",\"codTotalServiceFee\":\"500\",\"customerOrderTime\":\"2014-07-30 14:00:00\",\"endSignTime\":\"2015-09-11 17:00:00\",\"expressScheduleType\":\"101\",\"extendFields\":[{\"key\":\"A001\",\"value\":\"5000\"}],\"goodsValue\":\"10000\",\"gotEndTime\":\"204-11-30 19:00\",\"gotInTime\":\"30\",\"gotStartTime\":\"204-11-30 18:00\",\"grabOrderTime\":\"2014-07-30 14:00:00\",\"prevMailNo\":\"\",\"promiseSignTime\":\"2015-09-11 16:30:00\",\"scheduleDesc\":\"送达时间在2014-07-30 10:00:00到2014-07-30 14:00:00之间\",\"scheduleType\":\"104\",\"sendEndTime\":\"2014-07-30 13:05:34\",\"sendStartTime\":\"2014-07-30 12:05:34\",\"temperatureRequirement\":\"0-18\",\"totalFee\":\"600\",\"totalInsuredAmount\":\"23930\"},\"serviceFlag\":\"34,37\",\"tradeNo\":\"22227880099\"}"; var order = JsonConvert.DeserializeObject <TmsOrderModel>(orderdata); var i = 0; var mailno = $"6{DateTime.Now:yyyyMMdd}"; var outordercode = "LBXDCP"; //批量生成运单号以及外部订单号 var dataList = new ConcurrentDictionary <string, string>(); for (var x = 1; x <= 1; x++) { dataList.TryAdd($"{outordercode}{(1023892816 + x)}", $"{mailno}{x.ToString().PadLeft(4, '0')}"); } foreach (var p in dataList) { try { Interlocked.Increment(ref i); //计算序号 order.logisticsId = p.Key; order.mailNo = p.Value; var logisticsInterface = JsonConvert.SerializeObject(order); var dataDigest = SignHelper.CreateDataDigest(logisticsInterface, BaseInfo.SecretKey); logisticsInterface = HttpUtility.UrlEncode(logisticsInterface); dataDigest = HttpUtility.UrlEncode(dataDigest); var requestModel = new Dictionary <string, string> { ["logistics_interface"] = logisticsInterface, ["data_digest"] = dataDigest, ["msg_type"] = "TMS_CREATE_ORDER_ONLINE_NOTIFY", ["msg_id"] = "DCP00000000000002354032", ["ecCompanyId"] = "TAOBAO" }; #region MyRegion var sw = new Stopwatch(); sw.Start(); var result = Http.PostAsync(requestModel); Log.Set($"第{i}次数据提交总计用时:{sw.ElapsedMilliseconds}"); sw.Stop(); #endregion var model = JsonConvert.DeserializeObject <JObject>(result); if (model["success"].ToString().ToLower() == "true") { Log.Set($"第{i}订单提交成功,运单号:{order.mailNo},外部订单号:{order.logisticsId}", LogHandle.LogerType.Info); } else { Log.Set($"第{i}订单提交失败:{model["errorMsg"]},运单号:{order.mailNo},外部订单号:{order.logisticsId}", LogHandle.LogerType.Error); } } catch (AggregateException ae) { ae.Flatten(); //处理并行代码中的异常 foreach (var ex in ae.InnerExceptions) { //异常处理代码…… var message = new StringBuilder(); message.Append("多线程请求新增订单接口时发生错误:\n" + "参数:" + p); message.Append("订单内容:" + JsonConvert.SerializeObject(p)); message.Append(ex.Message + ex.StackTrace); Log.Set(message.ToString(), LogHandle.LogerType.Error); } } } /* * Parallel.ForEach(dataList, new ParallelOptions {MaxDegreeOfParallelism = 1}, (p, state) => * { * try * { * Interlocked.Increment(ref i); //计算序号 * * var sw = new Stopwatch(); * sw.Start(); * #region MyRegion * * order.logisticsId = p.Key; * order.mailNo = p.Value; * var logisticsInterface = JsonConvert.SerializeObject(order); * var dataDigest = SignHelper.CreateDataDigest(logisticsInterface, BaseInfo.SecretKey); * logisticsInterface = HttpUtility.UrlEncode(logisticsInterface); * dataDigest = HttpUtility.UrlEncode(dataDigest); * var requestModel = * new Dictionary<string, string> * { * ["logistics_interface"] = logisticsInterface, * ["data_digest"] = dataDigest, * ["msg_type"] = "TMS_CREATE_ORDER_ONLINE_NOTIFY", * ["msg_id"] = "DCP00000000000002354032", * ["ecCompanyId"] = "TAOBAO" * }; * * var result = Http.PostAsync(requestModel); #endregion * * * * Log.Set($"本次数据提交总计用时:{sw.ElapsedMilliseconds}"); * sw.Stop(); * * var model = JsonConvert.DeserializeObject<JObject>(result); * if (model["success"].ToString().ToLower() == "true") * Log.Set($"第{i}订单提交成功,运单号:{order.mailNo},外部订单号:{order.logisticsId}", LogHandle.LogerType.Info); * else * Log.Set($"第{i}订单提交失败:{model["errorMsg"]},运单号:{order.mailNo},外部订单号:{order.logisticsId}", LogHandle.LogerType.Error); * } * catch (AggregateException ae) * { * ae.Flatten(); * //处理并行代码中的异常 * foreach (var ex in ae.InnerExceptions) * { * //异常处理代码…… * var message = new StringBuilder(); * message.Append("多线程请求新增订单接口时发生错误:\n" + "参数:" + p); * message.Append("订单内容:" + JsonConvert.SerializeObject(p)); * message.Append(ex.Message + ex.StackTrace); * Log.Set(message.ToString(), LogHandle.LogerType.Error); * } * } * }); */ Http.Dispose(); }