Example #1
0
        public void Execute(JobExecutionContext context)
        {
            try
            {
                log.Info("AllListJob开始更新");
                var videos = ListCache.Instance.Items[new VideoNodeKey(null, 0, null)].Ver1;
                var root   = new XElement("vlist");
                int num    = 0;
                foreach (var video in videos)
                {
                    root.Add(ResponseUtils.ResponseBack(ListCache.Instance.Dictionary[video]));
                    num++;
                }
                root.AddFirst(new XElement("count", num));
                ResponseUtils.SaveXml("all.xml", root);
                YesterdayListCache.Instance.Refresh(videos);
                SerizlizerUtils <YesterdayVideoNode> .SerializeSplitCache(YesterdayListCache.Instance.Items, _buffername);

                //SerizlizerUtils<VideoNode>.SerializeSplitCache(videos, _buffername);
            }
            catch (Exception ex)
            {
                log.Error(ex);
            }
            finally
            {
                log.Info("AllListJob结束更新");
            }
        }
Example #2
0
 public void Execute(JobExecutionContext context)
 {
     try
     {
         log.Info("UpdateListJob开始更新");
         var yesterday = YesterdayListCache.Instance.Items;
         var todaylist = ListCache.Instance.Items[new VideoNodeKey(null, 0, null)].Ver1;
         var today     = VideoUtils.ConvertVodIenum(todaylist);
         var root      = new XElement("vlist");
         root.Add(new XElement("count", todaylist.Count()));
         XElement updatexml;
         XElement deletexml;
         if (yesterday != null)
         {
             var updatevideo = today.Intersect(yesterday, new YesterdayModifyCompare());
             var addvideo    = today.Except(yesterday, new YesterdayVidCompare());
             var deletevideo = yesterday.Except(today, new YesterdayVidCompare());
             updatexml = new XElement("v-update", new XAttribute("count", updatevideo.Count() + addvideo.Count()));
             foreach (var uv in updatevideo)
             {
                 updatexml.Add(ResponseUtils.ResponseBack(ListCache.Instance.Dictionary[uv.ChannelId]));
             }
             foreach (var av in addvideo)
             {
                 updatexml.Add(ResponseUtils.ResponseBack(ListCache.Instance.Dictionary[av.ChannelId]));
             }
             deletexml = new XElement("v-delete", new XAttribute("count", deletevideo.Count()));
             foreach (var dv in deletevideo)
             {
                 var v = new XElement("vid", dv.ChannelId);
                 deletexml.Add(v);
             }
         }
         else
         {
             updatexml = new XElement("v-update", new XAttribute("count", 0));
             deletexml = new XElement("v-delete", new XAttribute("count", 0));
         }
         root.Add(updatexml);
         root.Add(deletexml);
         string fileName = string.Format("delta_{0}.xml", DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"));
         ResponseUtils.SaveXml(fileName, root);
     }
     catch (Exception ex)
     {
         log.Error(ex);
     }
     finally
     {
         log.Info("UpdateListJob结束更新");
     }
 }
Example #3
0
 public string TodayUpdate(UpdateFilter filter)
 {
     try
     {
         var    nowvideos    = VideoUtils.ConvertVodIenum(ListCache.Instance.Items[new VideoNodeKey(null, 0, null)].Ver1);
         var    updatevideos = nowvideos.Where(video => video.ModifyTime >= filter.lasttime);                  //.ToList();
         var    deletevideos = YesterdayListCache.Instance.Items.Except(nowvideos, new YesterdayVidCompare()); //.ToList();
         int    count        = updatevideos.Count();
         string lasttime     = filter.lasttime.ToString("HH:mm:ss");
         if (count > 0)
         {
             lasttime = updatevideos.Max(video => video.ModifyTime).ToString("HH:mm:ss");
         }
         //var currentvideos = updatevideos.Skip(filter.c * (filter.s - 1)).Take(filter.c);
         var xml = new XElement("vlist",
                                //new XElement("count", count),
                                //new XElement("page_count", PageUtils.PageCount(count, filter.c)),
                                new XElement("latest_time", lasttime),
                                new XElement("v-update", new XAttribute("count", count),
                                             from video in updatevideos select ResponseUtils.ResponseBack(ListCache.Instance.Dictionary[video.ChannelId])
                                             ),
                                new XElement("v-delete", new XAttribute("count", deletevideos.Count()),
                                             from dv in deletevideos select new XElement("vid", dv.ChannelId)
                                             )
                                );
         return(xml.ToString(SaveOptions.DisableFormatting));
     }
     catch (Exception ex)
     {
         return(BoxUtils.FormatErrorMsg(ex));
     }
 }