Как перенести параметры на Quartz?
Jul 02, 2025
Оставить сообщение
Передача параметров к кварцевому заданию является важным аспектом во многих реальных мировых приложениях, особенно при работе с различными задачами и динамическими конфигурациями. Как поставщик кварца, мы понимаем значение этого процесса и здесь, чтобы провести вас через него.
Зачем передавать параметры к кварцевой работе?
Прежде чем погрузиться в то, как - чтобы, давайте поймем, почему важен перемещение параметров к кварцевому заданию. В большинстве сценариев работа кварца предназначена для выполнения конкретной задачи. Однако природа этой задачи может варьироваться в зависимости от различных значений ввода. Например, у вас может быть работа, которая отправляет электронные письма. Список получателей, предмет и содержание электронной почты могут быть разными в зависимости от контекста. Передав параметры на работу, вы можете сделать его более гибким и адаптируемым к различным ситуациям.
Предварительные условия
Чтобы перенести параметры к кварцевому заданию, вам сначала нужно иметь базовое понимание кварца. Quartz - это библиотека планирования заданий с открытым исходным источником в Java. Это позволяет вам определять рабочие места и триггеры. Задача - это задача, которую вы хотите выполнить, и спусковой крючок определяет, когда задания будет работать.
Прохождение параметров с использованием jobdatamap
Одним из наиболее распространенных способов передачи параметров к кварцевому заданию является черезJobDatamapПолем АJobDatamapявляется ключевым магазином, который может быть связан как с заданиями, так и с триггерами.
Шаг 1: Создайте класс работы
Во -первых, вам нужно создать класс работы, который реализуетРаботаИнтерфейс, предоставленный Quartz. Вот пример:
Импорт org.quartz.job; Импорт org.quartz.jobexecutioncontext; Импорт org.quartz.jobexecutionException; Импорт org.quartz.jobdatamap; открытый класс myjob реализует job {@Override public void execute (jobExecutycontext context) throws jobExecutionException {jobDatamap dataMap = context.getJobdetail (). getJobdatamap (); String parameter = dataMap.getString ("myParameter"); System.out.println («Значение параметра:» + параметр); }}
В этом примере,выполнятьМетод извлекаетJobDatamapсвязан с деталями работы. Затем он получает значение параметра с ключом"myParameter"Полем
Шаг 2: Установите параметры в JobDetail
Когда вы создаетеJobDetail, вы можете установить параметры вJobDatamapПолем Вот как вы можете это сделать:
Импорт org.quartz.jobbuilder; Импорт org.quartz.jobdetail; Импорт org.quartz.scheduler; Импорт org.quartz.scheduleerexception; Импорт org.quartz.trigger; Импорт org.quartz.triggerbuilder; Импорт org.quartz.impl.stdschedulerfactory; открытый класс main {public static void main (string [] args) {try {// создать планировщик планировщика = stdschedulerFactory.getDefaultscheduler (); // Создать детали работы JobDetail job = jobBuilder.newJob (myjob.class). Withidentity ("myjob", "group1") .usingjobdata ("myParameter", "Привет, кварц!") .Build (); // Создать триггер -триггер Trigger = triggerBuilder.newTrigger (). Withidentity ("mytrigger", "Group1") .StartNow () .build (); // Запланировать планировку работы. ScheduleJob (задание, триггер); // запустить планировку Pcheduler.start (); } catch (pradeRexception e) {e.printstacktrace (); }}}
В этом кодеyouingjobМетод используется для установки параметра"myParameter"со значением"Привет, Кварц!"вJobDatamapпринадлежащийJobDetailПолем


Передача параметров с использованием данных триггера
Вы также можете передавать параметры, используя триггерJobDatamapПолем Основное различие между использованием деталей работыJobDatamapи триггерJobDatamapэто триггерJobDatamapможет переопределить значения в деталях работыJobDatamapЕсли есть конфликты.
Вот пример передачи параметров с использованием триггераJobDatamap:
Импорт org.quartz.job; Импорт org.quartz.jobexecutioncontext; Импорт org.quartz.jobexecutionException; Импорт org.quartz.jobdatamap; открытый класс myjobwithtriggerdata реализует job {@override public void execute (jobexecutycontext context) throws jobexecutionexception {jobdatamap dataMap = context.getMergedJobdatamap (); String parameter = dataMap.getString ("myParameter"); System.out.println («Значение параметра из триггера:« + параметр); }} import org.quartz.jobbuilder; Импорт org.quartz.jobdetail; Импорт org.quartz.scheduler; Импорт org.quartz.scheduleerexception; Импорт org.quartz.trigger; Импорт org.quartz.triggerbuilder; Импорт org.quartz.impl.stdschedulerfactory; открытый класс mainwithtriggerdata {public static void main (string [] args) {try {// Создать планировщик планировщика = stdschedulerfactory.getDefaultscheduler (); // Создать детали работы JobDetail job = jobBuilder.newjob (myJobwithtriggerData.class). Withidentity ("myjobwithtriggerData", "Group1") .usingJobdata ("myParameter", «Ценность из деталей работы») .Build (); // Создать триггер Trigger Trigger = TriggerBuilder.newTrigger () .Withidentity ("mytriggerWithData", "Group1") .usingJobdata ("myParameter", "value от триггера") .StartNow () .build (); // Запланировать планировку работы. ScheduleJob (задание, триггер); // запустить планировку Pcheduler.start (); } catch (pradeRexception e) {e.printstacktrace (); }}}
В этом примере,выполнятьМетод используетgetmergedjobdatamapЧтобы получить комбинированныйJobDatamapЭто включает в себя как детали работы, так и триггерJobDatamapПолем Поскольку спусковой крючокJobDatamapПереопределяет детали работыJobDatamap, ценность"myParameter"будет"Значение из триггера"Полем
Реальные - мировые приложения
Передача параметров на Quartz Jobs имеет много реальных мировых приложений. Например, в финансовой заявке у вас может быть работа, которая рассчитывает процентные ставки. Формула процентной ставки и основная сумма могут быть переданы в качестве параметров для работы. В системе управления контентом работа, которая публикует статьи, может получать такие параметры, как идентификатор статьи, время публикации и целевая аудитория.
Наши кварцевые продукты
Как поставщик кварца, мы предлагаем широкий спектр высококачественных кварцевых продуктов. Например, у нас есть0200 - 00221 Изолятор кварц, 8 ', который подходит для различных приложений для изоляции. Наш0200 - 36691 Кольцо, одиночный, низкий профиль, 150 мм SMFэто отличный выбор для проектов, которые требуют точных компонентов. И0200 - 20054 Изолятор QTZ 6 "SMF ATA Precleanпредназначен для конкретных предварительных задач.
Заключение
Передача параметров к кварцевой работе - это мощная техника, которая может сделать вашу работу более гибкой и адаптируемой. Используете ли вы детали работыJobDatamapили триггерJobDatamap, вы можете легко передавать различные типы данных в свои задания. Если вы заинтересованы в наших кварцевых продуктах или нуждаетесь в дополнительной информации о планировании работы в кварце, пожалуйста, не стесняйтесь обращаться к нам для закупок и дальнейших обсуждений.
Ссылки
- Кварцевая официальная документация
- Документация Java API для библиотеки Quartz
Отправить запрос


