spring quartz實現動態任務排程

2021-08-13 20:59:00 字數 3414 閱讀 8728

在說今天內容前 先說乙個註解@postconstruct這個是在servlet啟動時,就執行的註解。為什麼要說他呢?我們專案很多任務是配置在資料庫的,所以我們啟動專案的時候就要直接執行這些任務。所以要這個註解。

直接上**

public

class sysjob

public

void

setstaffname(string staffname)

private string lastmodtime; //最後修改時間

public long getjobid()

public

void

setjobid(long jobid)

public string getjobname()

public

void

setjobname(string jobname)

public string getjobbeanname()

public

void

setjobbeanname(string jobbeanname)

public string getcronexpr()

public

void

setcronexpr(string cronexpr)

public

intgetcurrstate()

public

void

setcurrstate(int currstate)

public

intgetisautostart()

public

void

setisautostart(int isautostart)

public

intgetisdel()

public

void

setisdel(int isdel)

public string getjobmemo()

public

void

setjobmemo(string jobmemo)

public

long

getstaffid()

public

void

setstaffid(long staffid)

public string getcreatetime()

public

void

setcreatetime(string createtime)

public string getlastmodtime()

public

void

setlastmodtime(string lastmodtime)

public string getipaddr()

public

void

setipaddr(string ipaddr)

public string getinparam()

public

void

setinparam(string inparam)

public string getjobgroup()

public

void

setjobgroup(string jobgroup)

}

/**

* servlet上下文

* 是為了把我們排程工廠放進去

*/private servletcontext servletcontext;

/*** 實現servletcontextaware介面的方法,注入servletcontext,本類實現這個介面

*@param servletcontext

*/@override

public

void

setservletcontext(servletcontext servletcontext)

/**

* bean初始化好之後執行(初始化需要隨工程啟動而啟動的定時任務)

*/@postconstruct

public

void

init() }}

} catch (exception e)

}/**

* 返回ip位址(如果是多網絡卡,ip位址用逗號分割)

*@return

*/public string getalllocalhostip() }}

} catch (exception e)

return sb.tostring();

}

/**

* 啟動任務

* @param sysjob 定時任務物件

* @return

*/public mapstarttask(sysjob sysjob) catch (exception e)

try

scheduler.schedulejob(job, trigger);

scheduler.start();

flag = true;

//0表示定時任務的當前狀態為停止,1表示定時任務的當前狀態是執行

sysjobservice.updatecurrentstate(sysjob.getjobid(), 1);

} catch (exception e)

map.put("flag", flag);

map.put("failcause", failcause);

return map;

}

/**

* 停止任務

* @param sysjob 定時任務物件

* @return

*/public

map<

string, object> stoptask(sysjob sysjob)

scheduler.pausetrigger(triggerkey);// 停止觸發器

scheduler.unschedulejob(triggerkey);// 移除觸發器

scheduler.deletejob(jobkey);// 刪除任務

flag =

true;

//0表示定時任務的當前狀態為停止,1表示定時任務的當前狀態是執行

sysjobservice.updatecurrentstate(sysjob.getjobid(), 0);

} catch (exception e)

map.put("flag", flag);

map.put("failcause", failcause);

return

map;

}

Spring Quartz實現定時執行任務的配置

1.要想使用quartz 必須要引入相關的包 以下是我在專案中gradle中的配置 compile org.quartz scheduler quartz 2.1.1 2.scheduler的配置 mockjobschedule 3.trigger的配置 4.jobdetail的配置 5.業務類的配...

Spring Quartz實現定時任務的配置方法

1 scheduler的配置 說明 scheduler包含乙個trigger列表,每個trigger表示乙個作業。2 trigger和jobdetail的配置 0 0 0 1 說明 1 cron表示式的格式 秒 分 時 日 月 周 年 可選 欄位名 允許的值 允許的特殊字元 秒 0 59 分 0 5...

基於Vue element admin實現動態路由

通常我們在vue專案中都是前端配置好路由的,但在一些專案中我們可能會遇到許可權控制,這樣我們就涉及到動態路由的設定了 動態路由設定一般有兩種 1 簡單的角色路由設定 比如只涉及到管理員和普通使用者的許可權。通常直接在前端進行簡單的角色許可權設定 2 複雜的路由許可權設定 比如oa系統 多種角色的許可...