Oracle - 数据库启动时启动作业
Oracle - start job when database starts
我想在每次 Oracle 数据库启动时为 运行 安排一个 plsql 过程。该过程将执行一个无限循环,每 30 秒通过 REST 接口从远程服务器检索数据并将其插入本地数据库 table。 DBMS_SCHEDULER
但是似乎不支持这种情况,因为它希望 运行 以指定的时间间隔执行作业。
我不想每 30 秒再做一次作业,因为第一个作业将 运行 无限循环。然后我将在无限循环中拥有数百万个工作 运行ning。我还从 30 秒中减去 REST API 完成所需的时间,这样我就可以每 30 秒精确地调用一次限制性 REST API。
此外,有时 REST API 需要超过 30 秒才能完成,所以我只想在它完成后再次调用。所有这些都是为了防止受到限制。
我如何安排作业以便它在每次数据库启动时启动,以便它始终 运行?
只需将其安排为每 30 秒 运行。当数据库宕机时,当然什么也不会发生。但是,一旦启动,调度程序就会接管并按计划执行该作业。
看来我误解了这个问题 - 你想在启动时 运行 一个工作 ,它会 运行 无限循环。让我困惑的是“30秒”。
无论如何:创建一个在数据库启动时触发的数据库触发器,并让它安排该作业。例如:
create or replace trigger trg_schedule_job
after startup on database
begin
dbms_scheduler.run_job('schedule_job');
end;
/
我想在每次 Oracle 数据库启动时为 运行 安排一个 plsql 过程。该过程将执行一个无限循环,每 30 秒通过 REST 接口从远程服务器检索数据并将其插入本地数据库 table。 DBMS_SCHEDULER
但是似乎不支持这种情况,因为它希望 运行 以指定的时间间隔执行作业。
我不想每 30 秒再做一次作业,因为第一个作业将 运行 无限循环。然后我将在无限循环中拥有数百万个工作 运行ning。我还从 30 秒中减去 REST API 完成所需的时间,这样我就可以每 30 秒精确地调用一次限制性 REST API。
此外,有时 REST API 需要超过 30 秒才能完成,所以我只想在它完成后再次调用。所有这些都是为了防止受到限制。
我如何安排作业以便它在每次数据库启动时启动,以便它始终 运行?
只需将其安排为每 30 秒 运行。当数据库宕机时,当然什么也不会发生。但是,一旦启动,调度程序就会接管并按计划执行该作业。
看来我误解了这个问题 - 你想在启动时 运行 一个工作 ,它会 运行 无限循环。让我困惑的是“30秒”。
无论如何:创建一个在数据库启动时触发的数据库触发器,并让它安排该作业。例如:
create or replace trigger trg_schedule_job
after startup on database
begin
dbms_scheduler.run_job('schedule_job');
end;
/