您的位置:首页 > 其它

定时分段执行数据(控制台方式实现)

2012-11-09 18:18 323 查看
直接贴代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Timers;
using Qyn.Studio.Extend;
using Cms.Entity.Common;
using Cms.Logic.Common;
using System.IO;
using System.Threading;
namespace CmsCs
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(string.Format("服务已启动....更新频率:{0} 分钟;更新文章:{1} 篇;",SystemConfigs.ConfigInfo.Interval,SystemConfigs.ConfigInfo.DataSize));

while (true)
{
Thread.Sleep(SystemConfigs.ConfigInfo.Interval * 1000 * 60); //多长时间执行一次
TimedEvent();
}
}
//执行操作
private static void TimedEvent()
{
//按时间间隔发布产品
var IDs = TopicLogic.Data.Where(t => t.IsPublish == false && t.AuditType == TopicInfo.EumAuditType.Success).Asc(t => t.CreateAt).Selector(t => t.ID).ToList(SystemConfigs.ConfigInfo.DataSize).Select(t => t.ID.GetValueOrDefault()).ToList();
foreach (var item in IDs)
{
TopicLogic.Data.Where(t => t.ID == item).Update(new TopicInfo() { IsPublish = true });
}
Console.WriteLine(string.Format("{0}:发布文章共{1}篇 :{2}", DateTime.Now.ToLongString(), IDs.Count, IDs.ToString(",")));
SaveLog(IDs);
}

//日志记录
private static void SaveLog(List<int> IDs)
{
var path = @"F:\\CmsCsLog\\";
if (!Directory.Exists(path))
Directory.CreateDirectory(path);

var txtlog = @"F:\\CmsCsLog\\" + DateTime.Now.ToShortString() + "_Log.txt";

StreamWriter generateTxt = new StreamWriter(txtlog, true);
generateTxt.WriteLine(string.Format("{0}:发布文章共{1}篇 :{2}", DateTime.Now.ToString("HH:mm"), IDs.Count, IDs.ToString(",")));
generateTxt.Close();
generateTxt.Dispose();
}
}
}

仅留下来做记录,供以后查看

如有问题,请留言・・・

本文出自 “与时俱进” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: