Кварцевый StatefulJob / Non-StatefulJob

не могли бы вы объяснить мне точное среднее значение StatefulJob в кварце, и это разница с None StatefulJob?

3 ответов


интерфейс StatefulJob, предоставляет 2 вещи,

во-первых: только одно задание будет выполняться в любое время

во-вторых :в (SimpleTriggerBean) вы не будете беспокоиться о продолжительности работы. это означает, что следующий запуск будет выполнен после времени задержки после окончания предыдущего.


StatefulJob гарантирует, что только одно задание будет выполняться одновременно. Например, если вы запланировали выполнение задания каждые 1 минуту, но на его выполнение ушло 5 минут, то задание не будет выполняться снова до завершения предыдущего задания.

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

следующее задание будет выполняться по следующему расписанию, а не сразу после завершения предыдущего задания.


jobDetail.getJobDataMap().put("type","FULL");

эта строка решит, что мы используем statefull или non-statefull.

  1. если мы передаем аргумент, то это будет statefull.
  2. без statefull нет способа передать аргументы в методе execute
  3. в состоянии полного времени выполнения, если мы изменить любое значение тогда задание выполнения будет потеряно, оно не будет перезапущено при одновременном времени процесса.
  4. только одно задание будет выполняться на время вторым будет сон до завершения первого.
  5. в multi процессе планирования второй аргумент задания будет делиться на первое задание во время выполнения. это один из недостатков в процессе планирования multi.