大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在web.xml配置一个servlet设置启动顺序优先级高些(说白了就是web服务启动时调用这个类)
英山网站建设公司创新互联,英山网站设计制作,有大型网站制作公司丰富经验。已为英山上千余家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的英山做网站的公司定做!
servlet
servlet-namet1/servlet-name
servlet-classcom.base.test.T1/servlet-class
!-- 如果需要自动加载,加下面一句 --
load-on-startup1/load-on-startup
/servlet
在这个T1类中的初始化方法ini中写一个Timer类,按shcedule 定时去执行那个业务方法即可。
通过plsql查看tables、views等文件夹,找到定时器对应的DBMS_Jobs文件夹。
在文件夹或者在已有的定时器上右键 new... 创建一个新的job(定时器)
输入红色选中的必输参数。What里面是一些存储过程,可以是一个或者多个。多个之间用分好;隔开,可以数据一下注释说明,格式“/*存过说明*/。点击应用即可保存。点击View SQL可以查看job对应的sql脚本。
如果想查看一些脚本,处理通过打开文件夹的方式,也可以使用更方便的sql语句进行查看。
SELECT * FROM dba_jobs;
注意,如果next_date是4000-1-1表示这个脚本已经是停止状态。
如果想查询某个存储过程对应的哪个job可以通过dba_jobs表中what字段根据条件查询查看job.
dba_jobs中的job字段对应的值就和DBMS_Jobs中对应的数字是一致的,可以对信息进行修改更新。
我感觉你应该是不知道怎么写每月和每年吧。其实很简单,把你下次时间的字符串拿出来看下就行。下面是代码。
DECLARE
I4 INTEGER;I5 INTEGER;
BEGIN
--每月5号中午12点
DBMS_JOB.SUBMIT(I4,'YOUR PROC;',SYSDATE,'TRUNC(SYSDATE, ''MM'') + 4 + 12 / 24');
--每年1月10号中午12点
DBMS_JOB.SUBMIT(I5,'YOUR PROC;',SYSDATE,'TRUNC(SYSDATE, 'Y') + 9 + 12 / 24');
COMMIT;
END;
那是自动任务创建job,你这里具体怎么改表没说,我就大致举个例子declare
jobno number;
begin
dbms_job.submit(jobno,'begin update table1 set a=''test''; end;',trunc(sysdate)+1,'trunc(sysdate)+1');
end;
这里第一个参数是任务编号,系统自动赋值。也可以采用isubmit来手动指定第二个参数是需要执行的任务过程,代码长的话,可以将它写到一个存储过程里,再放到里面调用,比如'pro_test;' (pro_test假定为一个存储过程名)第三个参数是,自动任务第一次执行的时间,如果需要它立即执行,则使用sysdate最后一个参数,系统根据该参数的值指定下一次的执行时间。如果需要每天0点执行,就用我上面写的 创建好job后,可以在all_jobs中查询它的状态不需要时,使用dbms_job.remove来移除。dbms_job.broken可以用来停止和启动任务
一、oracle有自己的定时器,创建一个job每十五分钟执行一次,把查询的结果更新到一张表中,从这个表里取值就行了。
二、在工程中解决的话看你用的是什么,像spring之类的都有定时器。自己写个定时器每十五分钟执行一次就行了。
三、如果是前台发起的就更简单了,用setInterval循环执行,周期为十五分钟。