Heim >Java >javaLernprogramm >Spring verwendet Squertz, um geplante Aufgaben zu implementieren
Vorwort
Apropos geplante Aufgaben: Entwickler sind mit ihnen auf jeden Fall vertraut. Manche Dinge brauchen immer Computer, um sie zu erledigen, anstatt sie einfach alleine zu erledigen. Viele Leute sind jedoch immer mit Timern nicht vertraut. Heute wird der Herausgeber meine Freunde mitnehmen, um sein Geheimnis zu lüften und zu erklären, wie Spring Squertz verwendet, um geplante Aufgaben umzusetzen.
1. Erforderliches Jar
quartz-1.8.5.jar commons-logging.jar spring-core-3.0.5.RELEASE.jar spring-beans-3.0.5.RELEASE.jar spring-context-3.0.5.RELEASE.jar spring-context-support-3.0.5.RELEASE.jar spring-asm-3.0.5.RELEASE.jar spring-expression-3.0.5.RELEASE.jar spring.transaction-3.0.5.RELEASE.jar spring-web-3.0.5.RELEASE.jar
2. Konfigurationsdatei
Konfigurieren Sie hier, wann Sie es ausführen möchten Methode wird zum Ausführen Ihrer geplanten Aufgabe verwendet? Beispielsweise wird die Methode „generate“ von com.seewoedu.train.quartz.GenerateRewardListTask am 10.11.2016 um 23:00:00 Uhr ausgeführt. Hier wird cron verwendet, um die Ausführungszeit
anzugeben<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 启动触发器的配置开始 --> <bean name="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="myJobTrigger" /> </list> </property> </bean> <!-- 启动触发器的配置结束 --> <!-- quartz-2.x的配置 --> <bean id="myJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail"> <ref bean="myJobDetail" /> </property> <property name="cronExpression"> <!--<value>10 0/1 * * * ?</value>--> <!-- Cron表达式“10 */1 * * * ?”意为:从10秒开始,每1分钟执行一次。 --> <value>0 0 9 10 12 ? 2016</value> <!-- Cron表达式“0 0 23 10 11 ? 2016”意为:只在2016.11.10 23:00:00 执行。 --> </property> </bean> <!-- 调度的配置结束 --> <!-- job的配置开始 --> <bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="myJob" /> </property> <property name="targetMethod"> <value>generate</value> </property> </bean> <!-- job的配置结束 --> <!-- 工作的bean --> <bean id="myJob" class="com.seewoedu.train.quartz.GenerateRewardListTask" /> </beans>
3. Auszuführende Methoden
public class GenerateRewardListTask { @Autowired private GiftReceiveRecordService giftReceiveRecordService; org.slf4j.Logger logger = LoggerFactory.getLogger(GenerateRewardListTask.class); public void generate() throws Exception { giftReceiveRecordService.generateRewardMember(); //执行的方法 } }
4. Probleme, die Aufmerksamkeit erfordern
1. Wenn die Ausführungszeit auf das Jahr festgelegt ist Das Problem besteht darin, dass beim Starten des Projekts nach dieser Zeit weiterhin ein Speicherverlustfehler gemeldet wird, was wahrscheinlich bedeutet, dass Ihre geplanten Aufgaben nie ausgeführt werden und das Projekt nie startet.
2. Geplante Aufgaben werden implementiert, indem das Zeitintervall von der Bereitstellung des Projekts bis zur Ausführung der geplanten Aufgabe berechnet wird, anstatt die Zeit Ihres Servers in Echtzeit zu erhalten. Sie möchten also testen, ob die Eine geplante Aufgabe wird durch Ändern der Serverzeit nicht wirksam.
Zusammenfassung
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels für alle beim Lernen oder bei der Arbeit hilfreich sein kann eine Botschaft zum Mitteilen.
Weitere Artikel zum Thema Frühling, in denen Squertz zur Implementierung geplanter Aufgaben verwendet wird, finden Sie auf der chinesischen PHP-Website!