Как настроить Quartz.NET для планирования электронной почты - PullRequest
1 голос
/ 11 июля 2011

Существует два решения Quartz.server.2008.sln и quartz.2008.sln в загруженной библиотеке кварцевых .NET.Теперь я должен настроить повторяющуюся работу.В базе данных будет таблица, в которой будут определены все расписания (например, первая пятница месяца, каждые 5 месяцев, каждое воскресенье 12 часов утра ... и т. Д.).У меня есть метод, выполненный по графику.Теперь, как я могу использовать quartz.net, чтобы получить расписание из базы данных и установить метод для выполнения?Каковы правильные шаги?

Ответы [ 2 ]

3 голосов
/ 11 июля 2011

Я думаю, вы можете создать службу Windows, работающую в фоновом режиме.Вы можете прочитать scheduleFromDatabase varaible из базы данных и затем передать его 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

2 голосов
/ 11 июля 2011

Кварцевая документация, похоже, предполагает, что все знают основы и ищут только детали.

Надеемся, что приведенные ниже шаги вместе с документацией и примерами 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: Запустите консольный сервер и убедитесь, что фиктивное задание запущено
Шаг 7: Скопируйте консольный проект в новый проект
Шаг 8: Измените источник консоли для планированияработа через Quartz API.Вы сможете повторно использовать этот проект для планирования других работ.

Если бы они только добавили проект для планирования и управления заданиями, я думаю, что Quartz.Net действительно взлетит.

...