安排C#控制台应用程序

我已经完成了创建电子邮件C#控制台应用程序的任务,该应用程序的目标是批量运行。 我对C#领域很新,所以我不知道我的方向。 此C#控制台应用程序将部署在服务器上,并希望根据服务器时间在特定时间运行。

经过一些研究,大多数建议是关于使用任务调度程序或窗口服务,但我想知道这个C#控制台应用程序是否可能以某种方式运行自己的? 也许在执行之后,它会将自己注册到服务器中,服务器会定期处理它吗?

如果您想通过代码管理调度程序,请查看Quartz.NET:http://quartznet.sourceforge.net/

该库提供作业和触发器的创建。

例如(直接来自: http : //quartznet.sourceforge.net/tutorial/lesson_3.html ):

// construct a scheduler factory ISchedulerFactory schedFact = new StdSchedulerFactory(); // get a scheduler IScheduler sched = schedFact.GetScheduler(); sched.Start(); // construct job info JobDetail jobDetail = new JobDetail("myJob", null, typeof(DumbJob)); // fire every hour Trigger trigger = TriggerUtils.MakeHourlyTrigger(); // start on the next even hour trigger.StartTime = TriggerUtils.GetEvenHourDate(DateTime.UtcNow); trigger.Name = "myTrigger"; sched.ScheduleJob(jobDetail, trigger); 

现在这意味着你的控制台应用程序应该连续运行,这使它不适合这项工作。

选项1.通过执行控制台应用程序的任务调度程序(真正简单)添加任务。 请参阅示例任务: http : //www.sevenforums.com/tutorials/12444-task-scheduler-create-new-task.html

选项2.创建一个Windows服务(不复杂),它使用Quartz.NET或.NET的Timer类等库来调度作业并执行批处理操作。 请参阅创建Windows服务http://msdn.microsoft.com/en-us/library/zt39148a.aspx

选项3.使您的控制台应用程序实现一个scheduele库,如Quartz.NET或/ Net的Timer类,并将其作为服务运行(稍微复杂一点): 从可执行文件创建Windows服务

只要它不需要用户输入,它就可以自己运行。 例如,您可以安排程序在Windows任务计划程序中运行。