Tshumore Ответов: 1

Почему мой заказ не стреляли в кварцевых служба Windows


У меня есть программа, которая выполняет несколько задач в определенное время каждый день. Я переработал приложение для запуска в качестве задания Quartz с помощью службы Quartz windows. Когда я запускаю службу Quartz Server в службах Windows, я получаю ошибку :
Error 1053 :The service did not respond in a timely fashion

и когда я осматриваю кварцевые бревна в C:\Program файлы (x86)\Quartz.Net\Trace\application.отчет я вам :
15:13:54 [ServerScheduler_QuartzSchedulerThread] DEBUG Quartz.Core.QuartzSchedulerThread - Batch
   acquisition of 1 triggers
   15:13:54 [ServerScheduler_Worker-6] DEBUG Quartz.Core.JobRunShell - Calling Execute on job
   sampleGroup.sampleJob
   15:13:54 [ServerScheduler_Worker-6] INFO  Quartz.Server.SampleJob - SampleJob running...
  15:13:59 [ServerScheduler_Worker-6] INFO  Quartz.Server.SampleJob - SampleJob run finished.
   15:13:59 [ServerScheduler_Worker-6] DEBUG Quartz.Core.JobRunShell - Trigger instruction :
   NoInstruction
   15:14:04 [ServerScheduler_QuartzSchedulerThread] DEBUG Quartz.Simpl.SimpleJobFactory - Producing
   instance of Job 'sampleGroup.sampleJob', class=Quartz.Server.SampleJob
   15:14:04 [ServerScheduler_QuartzSchedulerThread] DEBUG Quartz.Core.QuartzSchedulerThread - Batch
   acquisition of 1 triggers
   15:14:04 [ServerScheduler_Worker-7] DEBUG Quartz.Core.JobRunShell - Calling Execute on job
   sampleGroup.sampleJob
   15:14:04 [ServerScheduler_Worker-7] INFO  Quartz.Server.SampleJob - SampleJob running...
   15:14:09 [ServerScheduler_Worker-7] INFO  Quartz.Server.SampleJob - SampleJob run finished.
   15:14:09 [ServerScheduler_Worker-7] DEBUG Quartz.Core.JobRunShell - Trigger instruction :
   NoInstruction


Я следовал руководству из этой статьи здесь последовательно выполняя задания кварца
На данный момент, похоже, сервер Quartz все еще ссылается на встроенное задание, которое поставляется вместе с установкой, и он также не распознает ни одного из внесенных мной изменений.

Что я сделал

1. построил проект библиотеки классов в режиме выпуска и скопировал результирующую библиотеку dll в C:\Program файлы (x86)\Quartz.Чистая как в руководстве здесь https://www.codeproject.com/Articles/1017396/Running-jobs-sequentially-using-Quartz-Net-with-th

2. Обновлено quartz_jobs.xml добавляя записи для моей программы :
   <job>
<name>JobOne</name>
<group>JobOneGroup</group>
<description>Sample job for Quartz Server</description>
<job-type>CheckListDemo.JobOne, CheckListDemo</job-type>
<durable>true</durable>
<recover>false</recover>
  <job-data-map>
<entry>
  <key>NextJobName</key>
  <value>JobTwo</value>
</entry>
    <trigger>
      <simple>
<name>jobOneTrigger</name>
<group>jobOneTriggerGroup</group>
<description>Simple trigger to simply fire sample job</description>
<job-name>JobOne</job-name>
<job-group>JobOneGroup</job-group>
<misfire-instruction>SmartPolicy</misfire-instruction>
<repeat-count>-1</repeat-count>
<repeat-interval>10000</repeat-interval>


3. Добавил пустой конструктор для инициализации работы на всех уроках осуществлению работы
4. создал плагин и добавил его ссылку в quartz.xml как :
# job initialization plugin handles adding a listener for our jobs
 quartz.plugin.PluginExample.type = CheckListDemo.PluginExample, CheckListDemo

5. добавлен класс плагинов (PluginExample.cs)
6. я добавил классы реализации заданий .Классы просто записывают некоторый текст в именованную папку :
  class JobTwo :IJob
     {
         public JobTwo()
         {

         }

public void Execute(IJobExecutionContext context)
{
    Console.WriteLine("Job two started");
    string realPath = @"C:\Users\user\Documents\FILES";
    string appLog = "JobTWO";

    var logPath = realPath + Convert.ToString(appLog) + DateTime.Today.ToString("dd -MM-yy") + ".   txt";
    if (!File.Exists(logPath))
    {
        File.Create(logPath).Dispose();
    }

    List<string> keys = new List<string>() { "TYPE", "SIGNATURE", "COMPANY", "CLIENT NAME" };

    foreach (string key in keys)
    {
        using (StreamWriter sw = File.AppendText(logPath))
        {
            sw.WriteLine(key);
            sw.Flush();
            sw.Close();
        }

    }

    System.Threading.Thread.Sleep(10000);
    Console.WriteLine("Job TWO finished");
}


7. добавлен прослушиватель заданий с необходимыми записями для моих заданий и триггера я проверил в отдельной консольной программе, что код действительно может записываться в те места, которые я указываю, что оставляет сам сервер Quartz в качестве проблемы.

Что я упускаю?

Требуется ли какая-либо дополнительная конфигурация, чтобы сервер забирал мою dll и указанные задания.

Что я уже пробовал:

Я попробовал запустить службу Quartz нормально без моей библиотеки dll, и она работает отлично.

Но как только я добавляю свою dll и поправки к установочным файлам quartz, у меня возникают проблемы.

F-ES Sitecore

Вы добавили что-нибудь к событию "старт" сервиса?

1 Ответов

Рейтинг:
0

Richard MacCutchan

Вы должны разместить свой вопрос на форуме в конце статьи, чтобы автор мог ответить.