Кварцевый планировщик: повторное выполнение той же работы под пул потоков 3 - PullRequest
0 голосов
/ 08 февраля 2019

Я экспериментирую с Quartz Scheduler, чтобы интегрировать его в наше приложение Spring с 10 заданиями. Каждое задание выполняется в течение 3 минут (Thread.sleep (3Min)). Каждое задание выполняется каждые 59 минут, как показано в выражении cron.

0 0/59 * * *?

Примечание : не использовать кластеризацию, но использовать JDBC Store какMySQL, работает только на одной машине.

Чтобы интерпретировать следующие выходные данные ,

  • Имена заданий представлены с помощью BSQJ-
  • «ВВЕДЕН» означает вход в состояние выполнения задания.
  • «ВЫХОД» означает выход из состояния выполнения задания.

Вывод следующий:

INFO: Server startup in 55196 ms
ENTERED: Job Execution for the JOb Name:  BSQJ-1 at the time of 2019/02/08 08:59:00
ENTERED: Job Execution for the JOb Name:  BSQJ-2 at the time of 2019/02/08 08:59:01
ENTERED: Job Execution for the JOb Name:  BSQJ-3 at the time of 2019/02/08 08:59:03
Feb 08, 2019 9:00:02 AM org.quartz.impl.jdbcjobstore.JobStoreSupport recoverMisfiredJobs
INFO: Handling 7 trigger(s) that missed their scheduled fire-time.
Feb 08, 2019 9:01:02 AM org.quartz.impl.jdbcjobstore.JobStoreSupport recoverMisfiredJobs
INFO: Handling 3 trigger(s) that missed their scheduled fire-time.
EXITING: the Job Execution for the Job Name:  BSQJ-1 at the time of 2019/02/08 09:02:00
EXITING: the Job Execution for the Job Name:  BSQJ-2 at the time of 2019/02/08 09:02:01
ENTERED: Job Execution for the JOb Name:  BSQJ-1 at the time of 2019/02/08 09:02:02
Feb 08, 2019 9:02:03 AM org.quartz.impl.jdbcjobstore.JobStoreSupport recoverMisfiredJobs
INFO: Handling 7 trigger(s) that missed their scheduled fire-time.
EXITING: the Job Execution for the Job Name:  BSQJ-3 at the time of 2019/02/08 09:02:03
ENTERED: Job Execution for the JOb Name:  BSQJ-2 at the time of 2019/02/08 09:02:09
ENTERED: Job Execution for the JOb Name:  BSQJ-4 at the time of 2019/02/08 09:02:11
Feb 08, 2019 9:03:02 AM org.quartz.impl.jdbcjobstore.JobStoreSupport recoverMisfiredJobs
INFO: Handling 1 trigger(s) that missed their scheduled fire-time.
Feb 08, 2019 9:04:03 AM org.quartz.impl.jdbcjobstore.JobStoreSupport recoverMisfiredJobs
INFO: Handling 6 trigger(s) that missed their scheduled fire-time.
EXITING: the Job Execution for the Job Name:  BSQJ-1 at the time of 2019/02/08 09:05:02
Feb 08, 2019 9:05:02 AM org.quartz.impl.jdbcjobstore.JobStoreSupport recoverMisfiredJobs
INFO: Handling 1 trigger(s) that missed their scheduled fire-time.
ENTERED: Job Execution for the JOb Name:  BSQJ-5 at the time of 2019/02/08 09:05:04
EXITING: the Job Execution for the Job Name:  BSQJ-2 at the time of 2019/02/08 09:05:09
EXITING: the Job Execution for the Job Name:  BSQJ-4 at the time of 2019/02/08 09:05:11
ENTERED: Job Execution for the JOb Name:  BSQJ-3 at the time of 2019/02/08 09:05:11
Feb 08, 2019 9:06:02 AM org.quartz.impl.jdbcjobstore.JobStoreSupport recoverMisfiredJobs
INFO: Handling 5 trigger(s) that missed their scheduled fire-time.
ENTERED: Job Execution for the JOb Name:  BSQJ-6 at the time of 2019/02/08 09:06:08
Feb 08, 2019 9:08:02 AM org.quartz.impl.jdbcjobstore.JobStoreSupport recoverMisfiredJobs
INFO: Handling 4 trigger(s) that missed their scheduled fire-time.
EXITING: the Job Execution for the Job Name:  BSQJ-5 at the time of 2019/02/08 09:08:04
ENTERED: Job Execution for the JOb Name:  BSQJ-7 at the time of 2019/02/08 09:08:07
EXITING: the Job Execution for the Job Name:  BSQJ-3 at the time of 2019/02/08 09:08:11
ENTERED: Job Execution for the JOb Name:  BSQJ-8 at the time of 2019/02/08 09:08:13
EXITING: the Job Execution for the Job Name:  BSQJ-6 at the time of 2019/02/08 09:09:08
Feb 08, 2019 9:10:03 AM org.quartz.impl.jdbcjobstore.JobStoreSupport recoverMisfiredJobs
INFO: Handling 2 trigger(s) that missed their scheduled fire-time.
ENTERED: Job Execution for the JOb Name:  BSQJ-9 at the time of 2019/02/08 09:10:07
EXITING: the Job Execution for the Job Name:  BSQJ-7 at the time of 2019/02/08 09:11:07
EXITING: the Job Execution for the Job Name:  BSQJ-8 at the time of 2019/02/08 09:11:13
Feb 08, 2019 9:12:02 AM org.quartz.impl.jdbcjobstore.JobStoreSupport recoverMisfiredJobs
INFO: Handling 1 trigger(s) that missed their scheduled fire-time.
ENTERED: Job Execution for the JOb Name:  BSQJ-10 at the time of 2019/02/08 09:12:05
EXITING: the Job Execution for the Job Name:  BSQJ-9 at the time of 2019/02/08 09:13:07
EXITING: the Job Execution for the Job Name:  BSQJ-10 at the time of 2019/02/08 09:15:05

Вопросы заключаются в следующем,Исходя из вышесказанного:

  1. В первом случае, после запуска трех заданий, планировщик выдал в качестве обработки 7 триггеров, которые пропустили запланированное время срабатывания, а затем сразу же дал другое утверждение в качестве обработки 3.триггеры, которые пропустили запланированное время стрельбы, а затем оно изменилось на 3 триггера.Почему, изначально, как я понимаю, это может быть обновление времени запуска для пропущенных триггеров, но когда это значение изменилось на 3 из 7 триггеров, даже если нет другого извлечения NEW JOB, почему оно изменилось на 3 триггера, а не на 6 триггеров?
  2. Рад, что 3 задания начали выполняться, когда мы установили для пула потоков значение 3, но затем, как только они закончили с выполнением, почему BSQJ-1 и BSQJ-2 (1-е и 2-е задания) одинаковые два заданияподобранный для выполнения независимо от того, что они должны бежать на следующей 59-й минуте следующего часа.?Я не понимаю, почему это происходит, и мне не хватает какой-либо конфигурации, чтобы установить его.
  3. Как уже упоминалось во 2-м пункте, когда я рассчитал общее количество выполнений, было 13 из 10 заданий, чтоозначает, что 3 рабочих места перезапущены.Это сбивает меня с толку, и я хотел знать, делаю ли я какую-либо ошибку.

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

Заранее благодарим и ценим ваше понимание этого.

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