0

我必须创建一个调度程序作业,它每天在 00:01 执行链。

如果作业执行时间超过 24 小时,则下一次运行应在当前完成后立即开始。

我试图设置:

  • 频率=每日间隔=1
  • 频率=每日间隔=1 BYHOUR=0 BYMINUTE=1
  • 频率=每周 BYDAY="周一、周二等..." BYHOUR=0 BYMINUTE=1

以上都失败了。

实际上,执行时间超过 24 小时,并且下一次作业运行是立即的,但也发生了作业跳过一天并安排下一次运行在第二天。

编辑:我注意到运行被跳过时(示例):*使用这样的间隔:FREQ = WEEKLY; BYDAY=周一、周二、周三、周四、周五、周六、周日;按小时=0;BYMINUTE=1;BYSECOND=0

  1. 在星期一执行期间,跳过了一些链步骤(星期一),作业在星期二完成执行,并在星期三设置下一次运行。

  2. 链步(只有一个,还有更多)被暂停。在星期一执行期间,我取消了该步骤,作业在星期二完成执行,并在星期三设置下一次运行。

4

2 回答 2

1

举个例子

  • 星期一开始 00:01,下一个计划在星期二 00:01。结束时间 23:07
  • 周二 00:01 开始,下一个预定周三 00:01,周三 00:05 结束
  • 周三 00:05 开始(延迟,因为周二仍在运行)

需要注意的是周三开始,因为这将决定下一次开始的时间。如果它设置为“每日间隔 = 1”,它至少不会再运行一天。使用每小时间隔但使用按小时/按分钟过滤器,因此它不会每小时运行一次。

于 2016-08-19T04:33:51.410 回答
0

您是否尝试过启用这项工作?

BEGIN
  DBMS_SCHEDULER.enable(name=>'"schema"."job_name"');
END;
于 2016-08-18T22:11:00.840 回答