定时分段执行数据(控制台方式实现)
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();
}
}
}
仅留下来做记录,供以后查看
如有问题,请留言・・・
本文出自 “与时俱进” 博客,转载请与作者联系!
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();
}
}
}
仅留下来做记录,供以后查看
如有问题,请留言・・・
本文出自 “与时俱进” 博客,转载请与作者联系!
相关文章推荐
- Android中定时执行任务的基本实现方式(未完待续)
- 通过SSIS实现Oracle与Sqlserver数据库间的数据同步,并定时执行同步任务
- PHP定时执行的三种方式实现
- 控制台下WinApi同步方式实现的串口发送数据
- PHP定时执行的三种方式实现
- php自动刷新与关闭页面后继续执行,定时任务的实现方式
- 通过SSIS实现Oracle与Sqlserver数据库间的数据同步,并定时执行同步任务
- 使用System.Threading的Timer&Quartz.net两种方式实现定时执行任务,防止IIS释放timer对象
- 对Ext.form.TriggerField实现下拉菜单和手动两种方式输入数据
- [C#]Thread与委托实现定时刷新数据功能
- Android数据存储实现的5大方式
- C#连接MySQL数据库实现DataGridView定时更新数据——多结果集返回
- Android数据存储实现的5大方式
- Oracle 快速插入1000万条数据的实现方式
- 瀑布流的实现方式,移动端的瀑布流,数据多列表渲染方式
- Spring定时任务的实现方式--ScheduledExecutorService
- Android数据存储实现的5大方式
- java使用DES加密方式,实现对数据的加密解密
- Java实现多种方式的http数据抓取
- java Timer(定时调用、实现固定时间执行)