Отладка Quartz.Net и для чего нужна служба Windows? - PullRequest
0 голосов
/ 21 ноября 2011

Я работал с примерами, поставляемыми с Quartz.Net, и заметил, что планировщик все еще выполняет задания, даже если служба Windows остановлена! Так для чего он там?

Кроме того, я запускал этот код в модульном тесте ...

        ISchedulerFactory schedFact = new StdSchedulerFactory();

        // get a scheduler
        IScheduler sched = schedFact.GetScheduler();
        sched.Start();

        // construct job info
        JobDetail jobDetail = new JobDetail("myJob", null, typeof (MyJob));

        Trigger trigger = TriggerUtils.MakeMinutelyTrigger(1);

        trigger.StartTimeUtc = DateTime.UtcNow;

        trigger.Name = "myTrigger";

        sched.ScheduleJob(jobDetail, trigger);

Тест завершен, но точка останова в работе не сработала. К какому процессу мне нужно присоединиться, чтобы отладить работу?

Что мне здесь не хватает? StdSchedulerFactory не подключен к службе Windows?

Приветствия, Ян.

EDIT:

Вот код ...

NameValueCollection properties = new NameValueCollection();
        properties["quartz.scheduler.instanceName"] = "RemoteClient";

        // set thread pool info            
        properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz";
        properties["quartz.threadPool.threadCount"] = "5";
        properties["quartz.threadPool.threadPriority"] = "Normal";

        // set remoting expoter
        properties["quartz.scheduler.proxy"] = "true";
        properties["quartz.scheduler.proxy.address"] = "tcp://localhost:555/QuartzScheduler";

        // First we must get a reference to a scheduler

        ISchedulerFactory sf = new StdSchedulerFactory(properties);
        IScheduler sched = sf.GetScheduler();

        //sched.Start();

        // define the job and ask it to run
        JobDetail job = new JobDetail("remotelyAddedJob", "default", typeof(SimpleJob));
        JobDataMap map = new JobDataMap();
        map.Put("msg", "Your remotely added job has executed!");
        job.JobDataMap = map;
        CronTrigger trigger = new CronTrigger("remotelyAddedTrigger", "default", "remotelyAddedJob", "default", DateTime.UtcNow, null, "/5 * * ? * *");

        // schedule the job
        sched.ScheduleJob(job, trigger); 

SimpleJob - это просто реализация IJob, которая определена в той же сборке, что и приведенный выше код. И да, он не может найти DLL, в которой определен тип задания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...