我想过一种方法,就是在job的执行过程最后创建另一个job,等第一个job执行完之后,第二个job修改第一个job的时间。但第二个job怎么自身删除呢?
解决方案 »
- 现有服务器8G内存,如何优化oracle的参数
- VC 数据库 显示表的几个问题
- 怎样写脚本:实现把一个文件夹里的所有.SQL后缀的文件一次性都执行
- 谁能帮我优化一下这个oracle的sql语句?
- 急!!!如何用触发器记录用户执行动作???
- 如何在程序中获得ORACLE的连接串?!
- 送分了```
- SQL脚本转换为Oracle脚本,在线急等!!!!!!!!!!
- 机器安装了Oracle8.05,卸载后安装8.16,安装过程正常,但不能启动服务OracleOraHome81ManagementServer,请高手指点
- 两用户间对象的复制!!!
- oracle 怎么查询修改表中字段中的数据成绩 如图谢谢大家
- 问一个时间比较的语句
if to_char(sysdate,'dd') in ('05','15','25') then
--执行过程
end if;
job每次启动时,判断当前时间sysdate减去上次job执行完毕的时刻,根据这个时间差来决定是执行过程还是跳到过程结尾。
如果是决定执行,那么执行过程前后修改那两个字段值就可以。
用一定的算法去控制两个时间标记就可以达到你的目的。
我是需要直接修改job的下次执行时间,就像帖子标题说的一样。如果是在job里加判断的话,job还是在不该执行的时间执行了,只是没有执行存储过程。而我项目的业务逻辑里还有一些涉及到job的逻辑,这样改改动大。
不确定是否可以,没试过,可以尝试下
每天查看当前的job下次执行时间和设置的下次执行时间是否一致,不一致则修改job的执行时间
创建一个独立的事务,在这个独立事务中修改作业参数。作业结束时去调一下这个独立事务。不知行不行
先给大家说我一下我项目的业务逻辑,项目的业务系统可以动态设置新增、修改job。所以job在数据库里是动态创建、多个的。然后每个job执行相应的存储过程,然后根据存储过程的执行时间更改这个动态job的下次执行时间。
现在我想到的办法是,在数据库里手动创建一个固定job,间隔时间为null。那些每个动态的job执行的最后会更改这个固定的job的下次执行时间,就更改为动态job执行完之后延迟1分钟。而这个固定job就是在那些动态job执行完了之后1分钟更改动态job的下次执行时间。