如何设置石英.. NET用于安排电子邮件

本文关键字:用于 NET 电子邮件 石英 何设置 设置 | 更新日期: 2023-09-27 18:01:48

有两个解决方案Quartz.server.2008石英。2008。下载石英中的sln。网络图书馆。现在我必须设置循环工作。数据库中将有一个表,其中将定义所有时间表(如每月的第一个星期五,每月的每个5,每个周日的12点……等)。我让这个方法按计划执行。现在我如何使用quartz.net从数据库中获取调度并设置执行方法?正确的步骤是什么?

如何设置石英.. 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!
    }
}

这是很有用的:

石英。. NET服务器文档

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

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

步骤1:打开Windows资源管理器到…'Quartz.NET-1.0.3'database'tables文件夹
步骤2:执行适合数据库的脚本
第三步:打开Windows资源管理器到…'Quartz.NET-1.0.3'server'bin'3.5'console文件夹
步骤4:创建一个类库程序集,并添加一个实现IJob接口的类。第五步:编辑石英。配置文件。我的在下面。

  ################################################################################
  # 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:运行控制台服务器并验证虚拟作业正在运行
步骤7:将控制台项目复制到新项目
步骤8:修改控制台源以通过Quartz API调度作业。您将能够重用此项目来调度其他作业。

如果他们只添加一个项目来安排和管理作业,我认为石英。网络将真正起飞。