如何设置Quartz.NET来安排电子邮件

下载的quartz.NET库中有两个解决方案Quartz.server.2008.slnquartz.2008.sln 。 现在我必须设置重复工作。 数据库中将有一个表格,其中将定义所有时间表(如月的第一个星期五,每月5个月,每个星期天上午12点……等)。 我按计划执行了该方法。 现在我如何使用quartz.net从数据库获取计划并设置执行方法? 什么是正确的步骤?

我认为你可以创建一个在后台运行的Windows服务。 您可以从数据库中读取scheduleFromDatabase ,然后将其传递给Quartz。

这是一个来自控制台应用程序的小例子:

  static void Main(string[] args) { ISchedulerFactory schedFact = new StdSchedulerFactory(); IScheduler sched = schedFact.GetScheduler(); sched.Start(); JobDetail jobDetail = new JobDetail("myJob", null, typeof(HelloJob)); //read this string from database string scheduleFromDatabase="0 11 16 ? * FRI,SUN"; CronTrigger trigger = new CronTrigger("trigger1", null, "myJob", null,scheduleFromDatabase ); trigger.StartTimeUtc = DateTime.UtcNow; trigger.Name = "myTrigger"; sched.ScheduleJob(jobDetail, trigger); } public class HelloJob:IJob { public void Execute(JobExecutionContext context) { Console.WriteLine(DateTime.Now.ToString()); //Call here your method! } } 

这可能很有用:

Quartz.NET服务器文档

石英文档似乎确实假设每个人都知道基础知识并且只是在寻找细节。

希望以下步骤,以及Quartz文档和示例,您将能够启动项目。

步骤1:打开Windows资源管理器到… \ Quartz.NET-1.0.3 \ database \ tables文件夹
第2步:执行适合您数据库的脚本
步骤3:将Windows资源管理器打开到… \ Quartz.NET-1.0.3 \ server \ bin \ 3.5 \ console文件夹
第4步:创建一个类库程序集并添加一个实现IJob接口的类。
第5步:编辑quartz.config文件。 我的下面。

  ################################################################################ # Added by Brad Bruce # please refer to http://quartznet.sourceforge.net/tutorial/lesson_9.html before making changes ################################################################################ quartz.jobStore.type = Quartz.Impl.AdoJobStore.JobStoreTX, Quartz quartz.jobStore.driverDelegateType = Quartz.Impl.AdoJobStore.OracleDelegate, Quartz quartz.jobStore.tablePrefix = QRTZ_ quartz.jobStore.dataSource = myDS quartz.dataSource.myDS.connectionString = Data Source=xe; User Id=quartz; Password=quartz; quartz.dataSource.myDS.provider = OracleODP-20 quartz.jobStore.useProperties = true 

步骤6:运行控制台服务器并validation虚拟作业是否正在运行
步骤7:将控制台项目复制到新项目
步骤8:修改控制台源以通过Quartz API计划作业。 您将能够重复使用此项目来安排其他工作。

如果他们只添加一个项目来安排和管理工作,我认为Quartz.Net真的会起飞。