如何设置Quartz.NET来安排电子邮件
下载的quartz.NET库中有两个解决方案Quartz.server.2008.sln和quartz.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真的会起飞。
- TimeZoneInfo.Local与TimeZoneInfo.FindSystemTimeZoneById
- Ajax Control Toolkit AutoCompleteExtender将当前页面的字符html源字符显示为自动完成建议列表
- 视图exception后的Nhibernate Lazy Loadexception
- 我可以在隐藏的表单字段中放置ASP.Net会话ID吗?
- 获取默认凭据?
- .NET GridView – 你能正确对齐一列吗?
- 清除应用程序启动的所有会话
- 在GridView中获取ASP.NET HyperLinkField的文本
- 如何将SubDomain映射到子文件夹而不在IIS中创建其他网站?