Кварцевые задания не запускаются через XMLSchedulingDataProcessorPlugin - PullRequest
0 голосов
/ 11 сентября 2018

Уже два дня я пытаюсь понять, как заставить вещи работать. У меня есть приложение Java Spring, и я хочу использовать XMLSchedulingDataProcessorPlugin для запуска заданий в моем приложении. Это класс заданий, который я определил:

public class MyJob implements Job
{
    private final static Logger LOGGER = Logger.getLogger(MyJob.class.getName());

    public MyJob() { 
        System.out.println("My Job");
        LOGGER.log(Level.INFO, "My Job");
    }

    @Override
    public void execute(JobExecutionContext context)
    throws JobExecutionException {
        LOGGER.setLevel(Level.INFO);
        LOGGER.log(Level.INFO, "my job fired");
        System.out.println("my job fired"); 

    }

}

Довольно просто. Ниже приведен файл quartz.properties, который я определил для запуска ранее определенного задания:

org.quartz.scheduler.instanceName: MySchedulerForMyJob
org.quartz.scheduler.instanceId: AUTO
org.quartz.scheduler.skipUpdateCheck: true

org.quartz.plugin.triggHistory.class: org.quartz.plugins.history.LoggingJobHistoryPlugin
org.quartz.plugin.jobInitializer.class: org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin
org.quartz.plugin.jobInitializer.fileNames: quartz_jobs.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound: true
org.quartz.plugin.jobInitializer.scanInterval: 10
org.quartz.plugin.jobInitializer.wrapInUserTransaction: false

org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool 
org.quartz.threadPool.threadCount: 3
org.quartz.threadPool.threadPriority: 5

org.quartz.jobStore.misfireThreshold: 60000
org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore

Теперь давайте посмотрим, как я определил файл quartz_jobs.xml, на который я обращаю внимание Quartz:

<?xml version='1.0' encoding='utf-8'?>
<job-scheduling-data xmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"
  version="1.8">
    <schedule>
        <job>
            <name>myJob</name>
            <group>MYJOB_GROUP</group>
            <description>This job is a job</description>
            <job-class>com.myProject.MyJob</job-class>
        </job>
        <trigger>
            <cron>
                <name>myTrigger</name>
                <group>MYTRIGGER_GROUP</group>
                <job-name>myJob</job-name>
                <job-group>MYJOB_GROUP</job-group>
                <!-- trigger every 5 seconds -->
                <cron-expression>0/5 * * * * ?</cron-expression>
            </cron>
        </trigger>
    </schedule>
</job-scheduling-data>

В основном при запуске я ожидаю, что сообщение "моя работа сработает" печатается каждые 5 секунд. Я не вижу ничего подобного, предполагая, что работа не началась. Вот что я получаю в качестве вывода в моей консоли:

2018-09-11 10:02:39,944 - INFO  - [org.quartz.core.SchedulerSignalerImpl] - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
2018-09-11 10:02:39,944 - INFO  - [org.quartz.core.QuartzScheduler] - Quartz Scheduler v.1.6.3 created.
2018-09-11 10:02:39,945 - INFO  - [org.quartz.simpl.RAMJobStore] - RAMJobStore initialized.
2018-09-11 10:02:39,945 - INFO  - [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler 'org.springframework.scheduling.quartz.SchedulerFactoryBean#0' initialized from an externally provided properties instance.
2018-09-11 10:02:39,945 - INFO  - [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 1.6.3
2018-09-11 10:02:39,946 - INFO  - [org.quartz.core.QuartzScheduler] - JobFactory set to: org.springframework.scheduling.quartz.AdaptableJobFactory@ad570f2
2018-09-11 10:02:40,220 - WARN  - [org.apache.axis.utils.JavaUtils] - Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
2018-09-11 10:02:40,319 - INFO  - [org.quartz.core.QuartzScheduler] - Scheduler org.springframework.scheduling.quartz.SchedulerFactoryBean#0_$_NON_CLUSTERED started.
Quartz Initializer Servlet loaded, initializing Scheduler...
2018-09-11 10:02:40,326 - INFO  - [org.quartz.core.SchedulerSignalerImpl] - Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
2018-09-11 10:02:40,326 - INFO  - [org.quartz.core.QuartzScheduler] - Quartz Scheduler v.1.6.3 created.
2018-09-11 10:02:40,326 - INFO  - [org.quartz.simpl.RAMJobStore] - RAMJobStore initialized.
2018-09-11 10:02:40,326 - INFO  - [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler 'MySchedulerForMyJob' initialized from default resource file in Quartz package: 'quartz.properties'
2018-09-11 10:02:40,326 - INFO  - [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler version: 1.6.3
2018-09-11 10:02:40,326 - INFO  - [org.quartz.core.QuartzScheduler] - Scheduler MPListScheduler_$_NON_CLUSTERED started.
Scheduler has been started...
Storing the Quartz Scheduler Factory in the servlet context at key: org.quartz.impl.StdSchedulerFactory.KEY

Это говорит о том, что файл quartz.properties правильно прочитан, поскольку в нем указано 2018-09-11 10:02:40,326 - INFO - [org.quartz.impl.StdSchedulerFactory] - Quartz scheduler 'MySchedulerForMyJob' initialized from default resource file in Quartz package: 'quartz.properties' со ссылкой на правильное имя планировщика, которое я дал в quartz.properties.

Что может быть не так во всем этом, чтобы задание не начиналось?

1 Ответ

0 голосов
/ 11 сентября 2018

Полагаю, у вас все еще есть проблемы с quartz.properties. У меня есть сомнения по поводу конфигурации ниже.Прошу прощения, если это не решило ваши проблемы1007 * LoggingTriggerHistoryPlugin

`

org.quartz.plugin.triggerHistory.class=org.quartz.plugins.history.LoggingTriggerHistoryPlugin

ИЛИ

LoggingJobHistoryPlugin

org.quartz.plugin.jobHistory.class=org.quartz.plugins.history.LoggingJobHistoryPlugin

Вы неправильно настроили это свойство.Посмотрите на это для использования этих функций. ссылка

В противном случае сначала попробуйте на простом примере, что donot не имеет какого-либо пула потоков или журнала заданий. Некоторые пример .Если возможно, пожалуйста, измените: на = в файле свойств.Я знаю, что это не проблема.Просто попробуйте

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