Я использую Quartz jdbcjobstore для управления набором распределенных заданий в Java-приложении. У меня возникла проблема при развертывании кода, содержащего новую реализацию org.quartz.Job.
Когда я развертываю новую версию своего приложения, я выполняю канареечное развертывание, при котором новый тег моего кода некоторое время будет работать вместе со старой версией. Когда новая версия моего кода начнет выполняться, она заметит, что желаемое задание отсутствует в планировщике Quartz, и запланирует его.
Однако, если у меня все еще работают старые версии моего приложения, они иногда пытаются получить это новое задание, но выдают исключение ClassNotFoundException, поскольку новый класс задания отсутствует в старом теге моего приложения. Это переведет задание в состояние ОШИБКА, и оно прекратит выполнение.
Есть ли способ указать Quartz, что старые экземпляры не должны пытаться запустить новое задание?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ry-deploys