定时执行某段程序

有时候我们需要每天 定时的 自动 去执行某段程序,那么这个功能如何实现呢? 经过百度,定时器就可以实现,总结如下:

我用控制台写了一个程序,用来在指定时间内 打印 “我执行了”

上面就是程序的运行结构,由于我设置了循环,所以输出了多次

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
   
    class Program
    {
        public static int n = 0;
        public static string time = "14:41:0";//设置在每天下午2点26分执行
        static void Main(string[] args)
        {
           //指定时间执行一段程序
            System.Timers.Timer timer = new System.Timers.Timer();
            timer.Enabled = true;
            timer.Interval = 1000;//执行间隔时间,单位为毫秒   这里我设置的每隔1秒执行一次程序
            timer.Start();          
            timer.Elapsed += new System.Timers.ElapsedEventHandler(Timer1_Elapsed);
            Console.ReadKey();
        }
        
        private static void Timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            DateTime dt = DateTime.Now;
            string currentTime = string.Format("{0}:{1}:{2}", dt.Hour.ToString(), dt.Minute.ToString(), dt.Second.ToString());
            Console.WriteLine(currentTime);
            if (currentTime==time)//如果到了我们指定的时间,则提示“我执行了”
            {
                for (int i = 0; i < 1000; i++)
                {
                    Console.WriteLine("我执行了!");                   
                }               
               
            }         
          
        }
    }
}
View Code

参考: http://www.cnblogs.com/freeliver54/archive/2007/03/06/665625.html

集合MVC使用参考:http://www.cnblogs.com/sdadx/p/6102017.html

我们想要的效果就这样简单的搞定了~~ 

由于Timer只有在浏览网页的时候他才会执行,但我们想要的是将网站部署到IIS后,无论浏览不浏览或者IIS重启,他都会自动执行。

这时我们可以通过Quartz.Net实现,并利用Topshelf创建windows服务达到永久运行的效果:

参考博文:

1.http://www.cnblogs.com/jys509/p/4628926.html Quartz.NET 入门

2.http://www.cnblogs.com/jys509/p/4614975.html 使用Topshelf创建Windows服务

3.http://blog.csdn.net/yansong_8686/article/details/46991189 Quartz 定时任务设置某个时间区间每隔一定时间触发的cron表达式时间配置

参考上面,自己写了个Demo:网盘链接:http://pan.baidu.com/s/1pLU6dq7 密码:bo8p  or https://github.com/shuai7boy/TestQuartz

一般Quartz都单独作为一个项目对其它项目进行调用。

需要注意的问题:

1.将上面博文中提到的 配置文件 一定要改为始终配置

2.直接 搬砖 的话,注意改下Demo的命名空间和 配置文件路径

3.安装window服务时,如果出现以下错误,那么 首先 看看CMD是否以管理员运行, 如果是还不行,那就关闭杀毒软件应该就可以了

 

posted @ 2016-11-18 14:44  shuai7boy  阅读(299)  评论(0编辑  收藏  举报