公司要做一个定时更新本地数据的程序,每周六的凌晨两点更新本地数据,以确保本地数据的准确性。我做了一个定时发送邮件的程序来模拟这个业务。
写在在Global页面里面
protected void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
System.Timers.Timer objTimer = new System.Timers.Timer();
objTimer.Interval = 30000; //这个时间单位毫秒,比如10秒,就写10000
objTimer.Enabled = true;
objTimer.Elapsed += Email;
}
private void Email(object sender, EventArgs e)
{
new Thread(delegate()
{
DateTime D = DateTime.Now;
if (Convert.ToInt32(D.DayOfWeek) == 6 && D.Hour >= 14)
{
Member_DAL.Common co = new Member_DAL.Common();
co.SendUserEmail2();
}
Thread.Sleep(1000);
}).Start();
}
如果将计时器的间隔设置太短,发送邮件会失败,因为邮件方阻止了这种发送频率的行为。
上面是用定时器来做的,我们可以在下面的Email这里获取当前日期和时间进行判断。
发现一个地方,DateTime的DayOfweek返回来的是英文的星期几,但是用数字匹配也能匹配成功。