⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 schedulermanager.java

📁 以前做的一个j2ee的项目
💻 JAVA
字号:
package gov.gdlt.ssgly.taxcore.taxblh.htdl;

import java.util.Timer;
import java.sql.Time;
import java.util.Date;
import java.util.Calendar;
import gov.gdlt.ssgly.taxcore.comm.config.ApplicationContext;
import gov.gdlt.ssgly.taxcore.comm.log.LogWritter;

/**
 *
 * <p>Title: SchedulerManager</p>
 *
 * <p>Description: 后台代理程序自动执行的启动类,部署在weblogic的startup class中,
 *    当weblogic启动的时候,该类也启动运行。该类将定时启动当天调度任务生成类和执行类,
 * </p>
 *
 * <p>Copyright: Copyright (c) 2005 广东省地方税务局,广州市地方税务局</p>
 *
 * <p>Company: 广州地税</p>
 *
 * @author 肖雪莲
 * @version 1.0
 */
public class SchedulerManager {
    private Timer timer;

    public SchedulerManager() {
        if(timer==null) {
            timer = new Timer();
        }
    }

    //定时启动相关类,定时参数放在配置文件中
//如果从web启动进程的话,调用此方法
    public void runJob() {

//从配置文件中读取相关的参数,如任务启动时间,间隔时间
        String tmp = ApplicationContext.singleton().getValueAsString(
                ApplicationContext.HTDL_SCHEDULER_FIRSTTIME);
        Time firstTime = Time.valueOf(tmp);
        //比较现在的时间,如果今天的时间点已经pass的话,则设为明天
        Calendar c2 = Calendar.getInstance();  //当前时间
        LogWritter.sysDebug("系统时间: "+c2.getTime());

        Calendar c1 =Calendar.getInstance();  //设定的时间
        c1.setTimeInMillis(firstTime.getTime());

        c1.set(Calendar.YEAR,c2.get(Calendar.YEAR));
        c1.set(Calendar.MONTH,c2.get(Calendar.MONTH));
        c1.set(Calendar.DAY_OF_MONTH,c2.get(Calendar.DAY_OF_MONTH));
        LogWritter.sysDebug("设定的今天时间: "+c1.getTime());

        if(c2.after(c1)){  //如果今天的时间点pass的话,则日期加1天
            c1.add(Calendar.DATE,1);
            LogWritter.sysDebug("启动时间: "+c1.getTime());
        }


        HTDLcreateDtrw createDtrw = new HTDLcreateDtrw();
        HTDLexecDtrw execDtrw = new HTDLexecDtrw();
        LogWritter.sysDebug(".......in SchedulerManager......");
//        timer.schedule(createDtrw, c1.getTime(),ApplicationContext.HTDL_SCHEDULER_PERIOD);
//        timer.schedule(execDtrw, c1.getTime(), ApplicationContext.HTDL_SCHEDULER_PERIOD);
        timer.schedule(createDtrw, 0,ApplicationContext.HTDL_SCHEDULER_PERIOD);
        timer.schedule(execDtrw,0, ApplicationContext.HTDL_SCHEDULER_PERIOD);

    }

    public void cancelJob() {
        timer.cancel();
    }



    public Timer getTimer() {
        return timer;
    }

    public void setTimer(Timer timer) {
        this.timer = timer;
    }

    //如果从startup class启动进程的话,直接执行main
        public static void main(String args[]) {
            SchedulerManager c = new SchedulerManager();
            c.runJob();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -