javaのwebタスクアプリケーション:タイミング実行タスク
2668 ワード
回転:
http://dev.yesky.com/355/3407855.shtml
WEBアプリでタイミングタスクを実現する簡便な方法
webモードでは、定期的にいくつかのタスクを実行するには、quartzなどの第三者ソースツールを使う以外に、TimerとTimeTaskを使用して指定されたタイミングタスクを完了することができます.
第一歩:タスク管理クラスを作成し、Servlet Contect Listenerインターフェースを実現する.
以下は参照フラグメントです.
以下は参照フラグメントです.
xmlコード
以下は参照フラグメントです.
webサーバが起動すると、ジョブも起動され、周期的に実行されます.
ステップ2:時間タスククラスを作成します.
http://dev.yesky.com/355/3407855.shtml
WEBアプリでタイミングタスクを実現する簡便な方法
webモードでは、定期的にいくつかのタスクを実行するには、quartzなどの第三者ソースツールを使う以外に、TimerとTimeTaskを使用して指定されたタイミングタスクを完了することができます.
第一歩:タスク管理クラスを作成し、Servlet Contect Listenerインターフェースを実現する.
以下は参照フラグメントです.
public class TaskManager implements ServletContextListener {
/**
*
*/
public static final long PERIOD_DAY = DateUtils.MILLIS_IN_DAY;
/**
*
*/
public static final long PERIOD_WEEK = PERIOD_DAY * 7;
/**
*
*/
public static final long NO_DELAY = 0;
/**
*
*/
private Timer timer;
/**
* Web
*/
public void contextInitialized(ServletContextEvent event) {
//
timer = new Timer(" ",true);
// , (4 )
timer.schedule(new BackUpTableTask(),NO_DELAY, PERIOD_WEEK * 4);
// timer.schedule(new BackUpTableTask(),NO_DELAY, 30000);
}
/**
* Web
*/
public void contextDestroyed(ServletContextEvent event) {
timer.cancel(); //
}
}
javaコード以下は参照フラグメントです.
public class BackUpTableTask extends TimerTask {
private static Log log = LogFactory.getLog(BackUpTableTask.class);
private static boolean isRunning = false;
public void run() {
if (!isRunning) {
isRunning = true;
log.debug(" ..."); //
//working add what you want to do
log.debug(" ..."); //
isRunning = false;
} else {
log.debug(" ..."); //
}
}
}
ステップ3:ウェブにモニターを追加するxmlコード
以下は参照フラグメントです.
<listener>
<listener-class>***.TaskManager</listener-class>
<description> </description>
</listener>
webサーバが起動すると、ジョブも起動され、周期的に実行されます.
ステップ2:時間タスククラスを作成します.