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...