В последнее время необходимо выполнить запланированные задачи выполнения в проектах, таких как расчет точек членов, вызов сторонних интерфейсам и т. Д. Поскольку проект использует Spring Framework, он вводится здесь в сочетании с Spring Framework.
Написание домашней работы
То есть обычный поожо, следующим образом:
пакет com.pcmall.task; import org.slf4j.logger; import org.slf4j.loggerfactory; public class taska {private static logger = loggerfactory.getlogger (taska.class); public void taska1 () {для (int i = 0; i <100; i ++) {System. i);}} public void taska2 () {for (int i = 0; i <100; i ++) {System.out.println ("----- A2 ----"+i);}}} Установите конкретные задачи в файле конфигурации пружины
<? xml version = "1.0" Encoding = "UTF-8"?> <фасоль xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xsi: schemalocation = "http://wwww.springframe. http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="taskA"></bean><bean id="taskB"></bean><bean><bean id="taskJobA1"><property name="targetObject" ref="taskA"></property><property name="targetMethod" value = "taska1"> </property> <property name = "concurrent" value = "false"> </property> </bean> <bean id = "taskJoba2"> <name = "targetObject" ref = "taska"> </property> <name = "targetMethod" value = "taska2"> </properation> <property naly = "concurrent" value = "/"/"/"/свойство "</properate> <property =" value = "/"/"/"/свойство "</properate> </property" = "/"/". id = "taskJobb1"> <name = "name =" targetObject "ref =" taskb "> </property> <name =" targetMethod "value =" taskb1 "> </property> <name =" concurrent "value =" false "> </propetion> </bean> <bean id =" taskjobb2 "> <property vome =" targetObrege "refbeb" upbure> </stopport> </propertive> </stopport> </"/" refbege "refbb" ref. name = "targetmethod" value = "taskb2"> </property> <name = "concurrent" value = "false"> </property> </bean> <bean id = "taska1trigger"> <name = "jobdetail"> <ref bean = "taskJoba1"/> </property> <propatore = "cronexpression"> <value> 0 0. * * * * * ? </value> </property> </bean> <bean id = "taska2trigger"> <property name = "jobdetail"> <ref bean = "taskJoba2"/> </propetion> <name = "cronexpression"> <value> 0 0/2 * * *? bean = "taskjobb1"/> </property> <name = "croNexPression"> <Dague> 0/1 * * *? ?</value></property></bean><bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="taskA1Trigger" /><ref bean="taskA2Trigger" /><ref bean="taskB1Trigger" /><ref bean = "taskb2trigger"/> </list> </property> </bean> </beans>
Уведомление
Триггер может запустить только одну работу, но задание может быть вызвано несколькими триггерами, что на этот раз вызовет проблемы с параллелизмом. В Кварце, если вы не хотите выполнять одну и ту же работу одновременно, вы можете реализовать Statefuljob вместо работы. Если вы используете MethodInvokingJobdetailFactoryBean весной, вы можете сделать это, установив свойство concurrent = "false".
Конечная примечание
Преимущества использования кварца весной вместо одного приложения включают в себя:
Размещение всех настроек планирования задач в одном месте позволяет выполнять задачи.
Кодирование заданий возможна только, триггер и планировщик можно установить конфигурацией
Вы можете использовать фасоль Pojo Java для выполнения заданий без реализации интерфейса заданий
Подробное использование выражений Cron
Специальные символы, разрешенные допустимыми значениями поля
0-59 секунд, - * /
0-59, - * /
Часы 0-23, - * /
Дата 1-31, - *? / Lwc
Месяцы 1-12 или ян-дек,- * /
Неделя 1-7 или солнце-сат,- *? / Lc #
Год (необязательно) оставить пустым, 1970-2099, - * /
пример:
0/5 * * * *? : Выполнять каждые 5 секунд
Символ «» используется для указания всех значений. Например: «» означает «в минуту» в поле минуты.
"?" Персонаж используется только в областях даты и дня недели. Он используется для указания «неэкспланирующих значений». Это полезно, когда вам нужно указать что -то по одной из этих двух доменов. Вы поймете, глядя на пример ниже.
Два элемента даты месяца и дата недели взаимодействуют вместе. Установите знак вопроса, чтобы указать, что вы не хотите устанавливать это поле.
Характер «-» используется для указания диапазона. Например: «10-12» означает «10, 11, 12».
Символ «» используется для указания дополнительного значения. Например: «Пн, ср, пт» означает «понедельник, среда, пятница» в поле недели.
Символ «/» используется для указания приращения. Например: «0/15» во втором поле означает 0, 15, 30 и 45 секунд в минуту. «5/15» представляет 5, 20, 35 и 50 в час в минуте. Символ "" - до "/" (например:/10) эквивалентен 0 до "/" (например: 0/10). Помните одну сущность: каждое числовое поле выражения представляет собой набор максимальных и минимальных значений, таких как: набор секунд и мельчайших полей составляет 0-59, поля даты составляют 1-31, а поля месяца-1-12. Символ «/» может помочь вам получить соответствующее числовое значение в каждом поле символов. Например: «7/6» будет запускаться только в июле, когда месяц домен и не означает каждый июнь.
L-это пропущенное слово для «последнего», которое может представлять поля дня и дня дня, но смысл отличается в двух областях, например, поля дня дня представляет собой последний день месяца. Если поле дня недели означает «7» или «SAT», если число предшествует поле дня дня, это означает последние несколько дней месяца, например, «6L» означает последнюю пятницу месяца.
Персонаж "W" позволяет появиться только в поле даты. Этот персонаж используется для самого последнего рабочего дня указанной даты. Например: если вы пишете «15W» в поле даты, это означает: самый последний рабочий день этого месяца 15 -го числа этого месяца. Итак, если 15 -й в субботу, миссия будет вызвана 14 -го числа. Если 15 в воскресенье лучше, задача будет вызвана в понедельник, то есть 16 -е. Если вы заполняете «1W» в поле даты, даже если 1 -й в субботу, задача будет запускается только в следующий понедельник, то есть 3 -е место. Самый последний рабочий день, указанный персонажем «W», не может быть пересечен до месяца. Символ «W» может использоваться только с отдельным значением и не может быть числовым полем, таким как: 1-15W-это неправильно.
«L» и «W» могут использоваться совместно в поле даты, а LW представляет рабочий день последней недели месяца.
Персонаж «#» разрешено появляться только в домене дня недели. Этот символ используется для указания определенного дня месяца. Например: «6#3» означает пятницу третьей недели месяца (6 средств в пятницу, 3 средства, неделя 3). «2#1» означает понедельник первой недели месяца. «4#5» означает среду пятой недели.
Персонаж «C» разрешено появляться в областях даты и дня недели. Этот персонаж опирается на указанный «календарь». То есть значение этого выражения зависит от результата расчета соответствующего «календаря». Если нет ассоциации «календаря», она эквивалентна всем включенным «календарям». Например: поле даты - «5c», чтобы указать первый день в связанном «календаре» или последние 5 дней первого дня месяца. День недели - «1c», что означает первый день в связанном «календаре» или на следующий день первого дня недели, то есть на следующий день воскресенья (понедельник).
Пример выражения
"0 0 12 * *?" Запускается в 12 часов дня каждый день "0 15 10? * *" "Запускается в 10:15 каждый день" 0 15 10 * *? " Срабатывано в 10:15 каждый день "0 15 10 * *? *" Производится в 10:15 каждый день "0 0/5 14 * *? 2005" Производится в 10:15 каждый день "0 * 14 * *?" Запускается в 10:15 каждый день "0 0/5 14 * *?" Сработано в 14:15 до 14:59 каждый день "0 0/5 14 * *?" Запускается в 14:15 до 14:55 каждый день "0 0/5 14,18 * *?" Сработано в 5 минут каждый день с 14:15 до 14:55 каждый день "0 0/5 14,18 * *?" 0 0-5 14 * *? "0 10,44 14? 3 Ср." 0 10 10 10 10 Среда марта каждый год в 14:10 и 14:44 каждый год в 14:10 и 14:44 каждый год в 14:10 и 14:44 каждый год в 14:10 и 14:44 каждый год в 15 10? * Пн-пт "0 15 10 15 *?" 0 15 10 15 *? "0 15 10 15 10 15 *?" 0 15 15 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 1 10 ? * 6L 2002-2005 гг. * 6#3 "запускается в 10:15 в третью пятницу каждого месяца
Приведенная выше статья Spring интегрирует Quartz для реализации планирования задач по времени, - это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.