今天有人在群里问:
有个JOB,定时执行,每5秒执行一次。现在如果有一次它执行时间超过5秒,还没执行完毕,会怎么样?
关于这个问题,我的解释是:
排队执行,等着。
当第n次执行到第5秒时,如果新加JOB,数据库会另起一个进程或者线程来执行第N+1个JOB,如果碰上N+2...则依次类推,一直到达到数据库参数里设定的JOB进程数的最大值。
设置初始化参数 job_queue_processes可以调整JOB进程数的最大值(最大只能为1000)。
sql> alter system set job_queue_processes=n;
由于ORACLE采取了这样的方式处理JOB,增加了并发能力。但是针对实际情况还要考虑到MVCC带来的问题。
卡牌构筑类游戏小结
17 小时前
没有评论:
发表评论