Oracle -剩余执行

5anewei6  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(116)

因此,我们将在7:00 am- 5:00 pm之间每小时从cron运行此作业两次。因此,cron条目类似于:00,30 7-17 *
这基本上意味着该作业每天将运行多达20次。在存储过程中,剩余的执行次数是某些计算的一部分。所以:

At 7:00am, there are 20 executions remaining
At 7:30am, there are 19 executions remaining
At 8:00am, there are 18 executions remaining
At 8:30am, there are 17 executions remaining

等等,我如何确定剩余的执行数量,仅仅基于时间?这意味着,我们不想在剩余执行次数的某个地方存储一些变量或计数器。而且,说一个是执行错过了,也许是一些处理问题,那么好,它错过了。
如果我们可以计算代码中剩余的执行次数,那么它将是自给自足的,不需要维护等,即使我们暂停cron,当它再次启动时,它只是进行计算并继续。
任何想法都很好,因为我们还没有任何算法。
谢谢你,谢谢

bxgwgixi

bxgwgixi1#

有很多方法可以计算出来。这里有一个,通过生成一个执行日历并计算那些仍然在未来:

SELECT COUNT(*) execs_remaining
  FROM (SELECT TRUNC(SYSDATE) + 7/24 + (((LEVEL-1)*30)/1440) exec_date
          FROM dual
         CONNECT BY LEVEL <= 21)
 WHERE SYSDATE < exec_date

相关问题