SCHEDULER使用詳解

2021-08-10 12:49:28 字數 2853 閱讀 6634

scheduler使用詳解:

建立scheduler:

begin

sys.dbms_scheduler.create_schedule(

repeat_interval => 『freq=daily;byhour=15;byminute=0;bysecond=0』,

start_date => systimestamp at time zone 』+8:00』,

end_date => to_timestamp_tz(『2014-03-15 +8:00』, 『yyyy-mm-dd tzh:tzm』),

comments => 『rebuild index』,

schedule_name => 『「sys」.」idx_rebuild」』);

end;

引數解釋:

repeat_interval設定重複頻率

freq(指定重複頻率):

yearly:以年為單位,可以設定每年的哪天執行。interval重複次數。byyearday可以指定具體的日子。用1-365來表示每天,但到了閏年就是1-366。由於有二月這個不確定性的存在(例如如果設定69,則在平年指的是三月十號,閏年則會是三月九號),所以我們可以使用1-59來表示1月到2月28,-307至-1來表示2月29到12月31。之後byhour,byminute,bysecond可以用來指定執行的具體時刻。

其他的還有monthly、weekly、daily、hourly、minutely、secondly

舉例說明:

每年的1月14和3月10日的下午3點10分5秒執行,執行三年:

repeat_interval => 『freq=yearly;interval=3;byyearday=14,-297;byhour=15;byminute=10;bysecond=5』,

monthly:以月為單位,設定每個月的哪天執行:

每個月的1日、3日下午3點10分5秒執行,執行三個月:

repeat_interval => 『freq=monthly;interval=3;bymonthday=1,3;byhour=15;byminute=10;bysecond=5』,

每週二週三下午3點10分5秒執行,執行三周:

repeat_interval => 『freq=weekly;interval=3;byday=tue,wed;byhour=15;byminute=10;bysecond=5』,

每天下午3點10分5秒執行,執行三天

repeat_interval => 『freq=daily;interval=3;byhour=15;byminute=10;bysecond=5』,

從第一次執行的時候開始每小時執行一次,執行三次:(minutely、secondly和此類似,就不寫了)

repeat_interval => 『freq=hourly;interval=3』,

呼叫當時執行一次,不重複執行:

repeat_interval => null,

立即生效

start_date => systimestamp at time zone 』+8:00』,

2014-03-15 下午五點生效:

start_date => to_timestamp_tz(『2014-03-15 17:00:00 +8:00』, 『yyyy-mm-dd hh24:mi:ss tzh:tzm』),

如果沒有失效時間則不用設定此行。

2014-03-15下午九點結束:

end_date => to_timestamp_tz(『2014-03-15 21:10:00 +8:00』, 『yyyy-mm-dd hh24:mi:ss tzh:tzm』),

comments 對於scheduler的一些描述,沒有可以不寫。

schedule_name:schedule的所屬使用者和名字

sys使用者的,名字為idx_rebuild

schedule_name => 『「sys」.」idx_rebuild」』);

修改scheduler:

begin

sys.dbms_scheduler.set_attribute( name => 『「sys」.」dailyrebuild」』, attribute => 『repeat_interval』, value => 『freq=weekly;byhour=14;byminute=0;bysecond=0』);

sys.dbms_scheduler.set_attribute( name => 『「sys」.」dailyrebuild」』, attribute => 『start_date』, value => systimestamp at time zone 』+8:00』);

sys.dbms_scheduler.set_attribute( name => 『「sys」.」dailyrebuild」』, attribute => 『end_date』, value => to_timestamp_tz(『2014-03-15 +8:00』, 『yyyy-mm-dd tzh:tzm』));

end;

name :修改的scheduler的所屬使用者以及名字

attribute:修改的引數名

value:修改後的引數值

刪除scheduler:

begin

dbms_scheduler.drop_schedule( schedule_name => 』dailyrebuild』, force => false);

end;

只有兩個引數

schedule_name:schedule的名字

force:如果是false則如果有其他的job在使用這個schedule就不會刪除這個schedule,如果是true則不管有沒有其他job使用這個schedule都會將這個schedule刪除。

spring boot的Scheduler定時任務

configuration enablescheduling 開啟後台任務 public class scheduler cron second,minute,hour,day of month,month,day s of week scheduled cron 0 每分鐘執行一次 schedul...

scheduler 學習總結

只適合處理簡單的計畫任務,不能處理分布式計畫任務。優勢 是spring框架提供的計畫任務,開發簡單,執行效率比較高。且在計畫任務數量太多的時候,可能出現阻塞,崩潰,延遲啟動等問題。scheduled定時任務是spring3.0版本之後自帶的乙個定時任務。其所屬spring的資源包為 spring c...

java定時器的使用(Scheduler )

首先新增所需要的類包 quartz 1.5.2.jar,quartz all 1.5.2.jar,quartz jboss 1.5.2.jar 設定定時作業 刪除排程器的作業後,新建乙個我們現在要完成的作業,該作業所需要的類是receivejobd.class,作業名字是receiveontimes...