/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 6 - 2 0 1 9 Ġ äºº äºº å¼ĢæºĲ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġhttps :// www . ren ren . io Ċ Ġ* Ċ Ġ* Ġ çīĪ æĿĥ æīĢæľī ï¼Į ä¾ µ æĿĥ å¿ħ ç©¶ ï¼ģ Ċ Ġ*/ Ċ Ċ package Ġio . ren ren . modules . job . utils Ċ Ċ import Ġio . ren ren . common . exception . RR Exception Ċ import Ġio . ren ren . common . utils . Constant Ċ import Ġio . ren ren . modules . job . entity . Schedule Job Entity Ċ import Ġorg . quartz .* Ċ Ċ /** Ċ Ġ* Ġ å®ļæĹ¶ ä»»åĬ¡ å·¥åħ· ç±» Ċ Ġ* Ċ Ġ* Ġ@ author ĠMark Ġsun light cs @ gmail . com Ċ Ġ*/ Ċ object ĠSchedule Utils Ġ{ ĊĠĠĠ Ġprivate Ġval ĠJOB _ NAME Ġ= Ġ" TASK _" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ è§¦åıĳ åĻ¨ key ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Trigger Key ( jobId : ĠLong ): ĠTrigger Key Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTrigger Key . trigger Key ( JOB _ NAME Ġ+ Ġjob Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ job Key ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Job Key ( jobId : ĠLong ): ĠJob Key Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠJob Key . job Key ( JOB _ NAME Ġ+ Ġjob Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ è¡¨è¾¾å¼ı è§¦åıĳ åĻ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Cron Trigger ( scheduler : ĠScheduler , Ġjob Id : ĠLong ): ĠC ron Trigger ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġscheduler . get Trigger ( get Trigger Key ( jobId )) Ġas ? ĠC ron Trigger ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠScheduler Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRR Exception (" èİ·åıĸ å®ļæĹ¶ ä»»åĬ¡ Cron Trigger åĩºçİ° å¼Ĥå¸¸ ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĽå»º å®ļæĹ¶ ä»»åĬ¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Schedule Job ( scheduler : ĠScheduler , Ġschedule Job : ĠSchedule Job Entity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æŀĦå»º job ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjob Detail Ġ= ĠJob Builder . new Job ( Schedule Job :: class . java ). with Identity ( get Job Key ( schedule Job . jobId !! )). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è¡¨è¾¾å¼ı è°ĥ åº¦ æŀĦå»º åĻ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġschedule Builder Ġ= ĠC ron Schedule Builder . cron Schedule ( schedule Job . cron Expression ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Mis fire Handling Instruction Do Nothing () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĮī æĸ°çļĦ cron Expression è¡¨è¾¾å¼ı æŀĦå»º ä¸Ģä¸ª æĸ°çļĦ trigger ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrigger Ġ= ĠTrigger Builder . new Trigger (). with Identity ( get Trigger Key ( schedule Job . jobId !! )). with Schedule < Cron Trigger >( schedule Builder ). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĶ¾ åħ¥ åıĤæķ° ï¼Į è¿Ĳè¡Į æĹ¶ çļĦæĸ¹æ³ķ åı¯ä»¥ èİ·åıĸ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjob Detail . job DataMap [ Schedule Job Entity . JOB _ PARAM _ KEY ] Ġ= Ġschedule Job ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler . schedule Job ( job Detail , Ġtrigger ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æļĤ åģľ ä»»åĬ¡ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( schedule Job . status Ġ== ĠConstant . Schedule Status . PAUSE . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpause Job ( scheduler , Ġschedule Job . jobId !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠScheduler Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRR Exception (" åĪĽå»º å®ļæĹ¶ ä»»åĬ¡ å¤±è´¥ ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠæĽ´æĸ° å®ļæĹ¶ ä»»åĬ¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate Schedule Job ( scheduler : ĠScheduler , Ġschedule Job : ĠSchedule Job Entity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrigger Key Ġ= Ġget Trigger Key ( schedule Job . jobId !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è¡¨è¾¾å¼ı è°ĥ åº¦ æŀĦå»º åĻ¨ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġschedule Builder Ġ= ĠC ron Schedule Builder . cron Schedule ( schedule Job . cron Expression ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Mis fire Handling Instruction Do Nothing () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtrigger Ġ= Ġget Cron Trigger ( scheduler , Ġschedule Job . jobId !! ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĮī æĸ°çļĦ cron Expression è¡¨è¾¾å¼ı éĩįæĸ° æŀĦå»º trigger ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrigger Ġ= Ġtrigger ?. trigger Builder ?. with Identity ( trigger Key )?. with Schedule < Cron Trigger >( schedule Builder )?. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åıĤæķ° ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrigger ?. job DataMap ?. set ( Schedule Job Entity . JOB _ PARAM _ KEY , Ġschedule Job ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler . re schedule Job ( trigger Key , Ġtrigger ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// æļĤ åģľ ä»»åĬ¡ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( schedule Job . status Ġ== ĠConstant . Schedule Status . PAUSE . value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpause Job ( scheduler , Ġschedule Job . jobId !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠScheduler Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRR Exception (" æĽ´æĸ° å®ļæĹ¶ ä»»åĬ¡ å¤±è´¥ ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç«ĭ åį³ æī§è¡Į ä»»åĬ¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrun ( scheduler : ĠScheduler , Ġschedule Job : ĠSchedule Job Entity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åıĤæķ° ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Map Ġ= ĠJob DataMap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Map [ Schedule Job Entity . JOB _ PARAM _ KEY ] Ġ= Ġschedule Job ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler . trigger Job ( get Job Key ( schedule Job . jobId !! ), Ġdata Map ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠScheduler Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRR Exception (" ç«ĭ åį³ æī§è¡Į å®ļæĹ¶ ä»»åĬ¡ å¤±è´¥ ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ ļ Ĥ åģľ ä»»åĬ¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpause Job ( scheduler : ĠScheduler , Ġjob Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler . pause Job ( get Job Key ( jobId )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠScheduler Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRR Exception (" æļĤ åģľ å®ļæĹ¶ ä»»åĬ¡ å¤±è´¥ ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæ ģ ¢å¤į ä»»åĬ¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġresume Job ( scheduler : ĠScheduler , Ġjob Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler . resume Job ( get Job Key ( jobId )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠScheduler Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRR Exception (" æļĤ åģľ å®ļæĹ¶ ä»»åĬ¡ å¤±è´¥ ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪłéĻ¤ å®ļæĹ¶ ä»»åĬ¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdelete Schedule Job ( scheduler : ĠScheduler , Ġjob Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscheduler . delete Job ( get Job Key ( jobId )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠScheduler Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRR Exception (" åĪłéĻ¤ å®ļæĹ¶ ä»»åĬ¡ å¤±è´¥ ", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ