private void GetMiniAppsTask(int index) { byte[] da = null; string json = null; AllCountRequestJsonModel <MerchantAppModel> list = null; try { using (WebClient wc = new WebClient()) { da = wc.DownloadDataTaskAsync(appsUrl + index).Result; json = Encoding.UTF8.GetString(da); list = JsonConvert.DeserializeObject <AllCountRequestJsonModel <MerchantAppModel> >(json); if (list == null || list.code != 0) { return; } MongoDBContext.MerchantAppModelContext.GetCollection().InsertMany(list.data.list); da = null; json = null; list = null; } } catch (Exception e) { e.Save(); da = null; json = null; list = null; } }
private void RefreshMerchantsApps() { byte[] da = null; string json = null; AllCountRequestJsonModel <MerchantAppModel> list = null; try { using (WebClient wcc = new WebClient()) { da = wcc.DownloadData(appsUrl + 1); //var json = wcc.DownloadStringTaskAsync(merchantsUrl + 1).Result; json = Encoding.UTF8.GetString(da); //var json = wcc.DownloadStringTaskAsync(appsUrl + 1).Result; list = JsonConvert.DeserializeObject <AllCountRequestJsonModel <MerchantAppModel> >(json); var pageSum = list.data.maxpage; TaskFactory taskFactory = new TaskFactory(); //Task[] tasks = new Task[pageSum]; var tasks = new List <Task>(); var pageIndexs = new List <int>(); for (int i = 0; i < pageSum; i++) { pageIndexs.Add(i + 1); } foreach (var item in pageIndexs) { tasks.Add(taskFactory.StartNew(() => GetMiniAppsTask(item))); } taskFactory.ContinueWhenAll(tasks.ToArray(), t => { taskFactory = null; tasks = null; pageIndexs = null; }); MongoDBContext.MerchantAppModelContext.GetCollection().DeleteMany(MongoDBContext.MerchantAppModelContext.Filter.Empty); } } catch (Exception e) { e.Save(); } }