spring定時器,定時器一次執行兩次的問題
今天在做一個專案的時候用到了Spring的定時計劃任務。這是Spring的特色功能,可以根據設定在特定的時間或間隔時間做特定的事。
下面給出一個例子:
- package net.csdn.blog.chaijunkukn;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Locale;
- publicclass TimerTask {
- publicvoid printTimeStamp(){
-
Calendar ca= Calendar.getInstance();
- ca.setTimeInMillis(System.currentTimeMillis());
- SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS ", Locale.CHINA);
- //顯示當前時間 精確到毫秒
- System.out.print(sdf.format(ca.getTime()));
- }
- public TimerTask(){
-
this.printTimeStamp();
- System.out.println("計劃任務被初始化了");
- }
- publicvoid doTask(){
- this.printTimeStamp();
- System.out.print("計劃任務被執行,執行緒id:");
- System.out.println(Thread.currentThread().getId());
- }
- }
根據Spring關於定時任務的規範,任務執行方法應為無引數無返回的方法,因此按照規範上面的例子中聲明瞭doTask方法。上面的例子很簡單,Spring作為IoC容器,構造TimerTask例項時會呼叫無參建構函式,此類會在例項化時在控制檯輸出當前時間和構造資訊。當定時任務被觸發時,也會在控制檯顯示當前時間和任務被執行的提示資訊。
下面是配置(需要宣告的是,本例項基於J2EE工程,使用了log4j,配置檔案只是工程中的一部分):
- <?xml version="1.0" encoding="utf-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
- <!-- 註冊定時器 -->
- <bean id="timer"
- class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
- <property name="triggers">
- <list>
- <ref bean="timerTaskTrigger" />
- </list>
- </property>
- </bean>
- <!-- 指定何時觸發定時任務 -->
- <bean id="timerTaskTrigger"class="org.springframework.scheduling.quartz.CronTriggerBean">
- <property name="jobDetail">
- <ref bean="timerTaskJobDetail" />
- </property>
- <property name="cronExpression">
- <!-- 每3秒鐘觸發一次 -->
- <value>0/3 * * * * ?</value>
- </property>
- </bean>
- <!-- 指定定時任務細節 呼叫哪個類 哪個方法 -->
- <bean id="timerTaskJobDetail"
- class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
- <property name="targetObject">
- <ref bean="timerTaskInstance" />
- </property>
- <property name="targetMethod">
- <value>doTask</value>
- </property>
- <property name="concurrent" value="false" />
- </bean>
- <!-- 例項化定時任務類 -->
- <bean id="timerTaskInstance"class="net.csdn.blog.chaijunkukn.TimerTask" />
- </beans>
web.xml的配置:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app id="WebApp_ID" version="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <display-name>TaskTest</display-name>
- <servlet>
- <servlet-name>springapp</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/classes/applicationContext*.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>springapp</servlet-name>
- <url-pattern>*.htm</url-pattern>
- </servlet-mapping>
- <filter>
- <filter-name>EncodingFilter</filter-name>
- <filter-class>com.ku6.tech.wap.filter.EncodingFilter</filter-class>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>utf-8</param-value>
- </init-param>
- <init-param>
- <param-name>forceEncoding</param-name>
- <param-value>true</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>EncodingFilter</filter-name>
- <url-pattern>*.htm</url-pattern>
- </filter-mapping>
- <error-page>
- <error-code>404</error-code>
- <location>/error.jsp</location>
- </error-page>
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- <listener>
-
<listener-
相關推薦
spring定時器,定時器一次執行兩次的問題
今天在做一個專案的時候用到了Spring的定時計劃任務。這是Spring的特色功能,可以根據設定在特定的時間或間隔時間做特定的事。 下面給出一個例子: package net.csdn.blog.chaijunkukn; import
####jquery click點選一次執行兩次解決方法【遇到】【解決(先接觸繫結,再繫結):$('#addImg').unbind('click').click(function () {})】
====專案例項: <%--$("body").on("click", "#toggle-button${activityDTO.id}", function (e) {--%> // 一次點選兩次觸發事件 <%--$("body").on("click", "#switc
input內容改變後,ie11中change事件執行兩次的解決辦法
頁面檔案上傳,程式碼如下: <form id="subId" action="doc/uploadTranslate"enctype="multipart/form-data"method="p
Java Web開發中,自定義過濾器被執行兩次的原因分析及解決辦法
本文出處:http://blog.csdn.net/chaijunkun/article/details/7646338,轉載請註明。由於本人不定期會整理相關博文,會對相應內容作出完善。因此強烈建議在原始出處檢視此文。 在Java Web開發過程中,我們可以使用過濾器和Sp
spring定時器task為什麼在伺服器上會執行2次
spring定時器task為什麼在伺服器上會執行2次 在本地idea執行專案時spring定時器只運行了一次,通過多次測試沒問題後我就把專案部署到伺服器上面,結果在伺服器上spring定時器竟然運行了2次,這我就想不明白了.我肯定程式碼和配置是沒有問題的,想了想難道是伺
Spring定時器在同一時間重複執行兩次
轉自: http://blog.sina.com.cn/s/blog_4c03369c0101tbtj.html 最近用Spring的quartz定時器的時候,發現到時間後,任務總是重複執行兩次,在tomcat或jboss下都如此。打印出他們的hashcode,發現是
關於Spring中用quartz定時器在定時到達時同時執行兩次的問題
我在使用spring的quartz配置定時任務時,發現每次定時時間到達後,指定的定時方法同時執行兩次,而且此方法還是使用的synchronized關鍵字,每次定時一到,會發現此方法內的System.out輸出資訊輸出兩次,說明方法在這時執行了兩次,解決方法沒有找到更好的,不過
spring 定時器執行兩次
spring錯誤筆記 spring定時器執行兩次因為匯入了兩次 關於配置檔案如下 <bean id="timeTaskService" class="xx.xxx.xxx.xxx.service.impl.na.TimeTaskService"/><ta
springboot項目,啟動項目後啟動的定時器,定時執行任務
@override code bapi calendar time() exist pri ram list() package com.wiscom.ism.webapi.ismController; import org.springframework.boot.A
springboot專案,啟動專案後啟動的定時器,定時執行任務
package com.wiscom.ism.webapi.ismController; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; i
java定時器,每天00:00執行任務
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Timer; import java.util.TimerTask; public class Time
java springmvc 定時器方法執行兩次問題
原因是在web.xml要例項化兩次分別是<servlet></servlet>和<context-param></context-param>裡,所以要將定時器對任務,單獨寫到一個xml檔案裡,配置如下 <context
spring3.0基於註解的定時器以及執行兩次的解決辦法
參考: 配置檔案: 1.首先要在application-context.xml裡面配置好namespace 和schema,如下: xmlns:task="http://www.springframework.org/schema/task" 2.在appli
C51微控制器中斷,暫存器,定時器,PWM原理,配置及使用
大家晚上好,我分享的內容大體是先介紹中斷,各暫存器使用(可能這裡有點囉嗦),然後就簡單寫一下定時器,然後PWM原理,以及它的配置和使用。大概今晚就這樣了,如果有什麼錯的,或有什麼疑問,請大家馬上提出來,一起進步。 中斷:當計算機執行正常程式時,系統中出現某些急需處理的異常
spring定時任務執行兩次的原因與解決方法
ref net 任務 article 服務 每次 bsp tail 本地 spring定時任務,本地執行一次,放到服務器上後,每次執行時會執行兩次,原因及解決辦法。 http://blog.csdn.net/yaobengen/article/details/70312
一個部署了tomcat服務的linux服務器,運行一段時間後出現內存和空間不足的問題
denied dev inux 使用情況 往裏面 a.out leo 輸出 byte —— 前段時間項目上的事比較忙,期間筆記都是臨時存在本地txt,這些天有點時間了,整理出來,以便日後查看; linux 查看內存使用情況:free -m 釋放緩
10款流行的Markdown編輯器,總有一款適合你
摘要:作為一個開源人,如果你不會使用Markdown語法,那你就OUT了!Markdown 是 2004 年由 John Gruberis 設計和開發的純文字格式的語法,非常的簡單實用。 作為一個開源人,如果你不會使用Markdown語法,那你就OUT了!Markdown 是 2004 年由 John Gr
VS程式設計,WPF中,後臺C#建立Telerik顏色選擇器,顏色拾取器,調色盤的一種方法
之前的文章說過如何通過XAML語言,前臺建立顏色拾取器, 這裡展示一種後臺程式碼建立顏色調色盤的方法。 1、前臺的XAML格式 <telerik:RadColorEditor Width="500"
VS程式設計,WPF中,通過telerik控制元件建立顏色選擇器,顏色拾取器,調色盤的一種方法
這裡展示使用telerik控制元件時,呼叫顏色調色盤,顏色選擇器,顏色拾取器的一種方法 1、增加引用 2、前臺定義引用 xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
VS程式設計,WPF中,通過C# 建立顏色選擇器,顏色拾取器,調色盤的一種方法
有時為了美觀,需要動態、靈活的更改某一控制元件的顏色, 這時通過顏色選擇器進行取色是比較方便的一種方法。 參考:網址 顏色選擇器效果如下: 1、前臺定義一個控制元件並命名 2、前臺定義一個事件 3、增加兩個引用 4、增加