#oracle #plsql #oracle11g #dbms-scheduler
#Oracle #plsql #oracle11g #СУБД-планировщик
Вопрос:
у меня есть много заданий по расписанию, некоторые из которых работают через 15 минут, некоторые — через 1 час, а некоторые — через 5 секунд, как я могу управлять ими с 6:am до 7:pm. все выполняется в свое время, но с 6: 00 до 7:00. я очень жду вашего любезного ответа. exp
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'UPDATE_UPLOADREQUESTSTATS_JOB',
job_type => 'STORED_PROCEDURE',
job_action => 'CON_UPDATE_UPLOADREQUEST_STATS',
start_date => '30-OCT-18 12.10.00 PM Asia/Riyadh',
repeat_interval => 'FREQ=SECONDLY; INTERVAL=6',
end_date => '31-DEC-25 07.00.00 PM Asia/Riyadh',
auto_drop => FALSE,
enabled => TRUE,
comments => 'TEVS JOB');
END;
Комментарии:
1. Это процедура UPDATE_UPLOADREQUESTSTATS_JOB, которая вызывает другие процедуры, или вы запланировали все другие процедуры по-другому с помощью Oracle scheduler?
2. это просто имя задания, которое мы можем сохранить ABC, в job_action «CON_UPDATE_UPLOADREQUEST_STATS» это фактическая процедура, вызывающая задание
3. вы можете использовать цепочку заданий планировщика Oracle, чтобы запланировать параллельный запуск заданий или выполнение в зависимости от некоторых условий, пожалуйста, проверьте эту ссылку для получения дополнительной информации, у них есть хорошая example.pmdba.wordpress.com/2020/06/16 /…
Ответ №1:
Я нашел свой лучший способ справиться с этой ситуацией.Если вы хотите выполнять эту процедуру через каждые 3 минуты с 6:00 утра до 7:00 вечера, мы можем использовать, как
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'UPDATE_UPLOADREQUESTSTATS_JOB',
job_type => 'STORED_PROCEDURE',
job_action => 'CON_UPDATE_UPLOADREQUEST_STATS',
start_date => 'TRUNC(SYSDATE)',
repeat_interval => 'FREQ=DAILY;BYHOUR=6,7,8,9,10,11,12,13,14,15,16,17,18,19;BYMINUTE=3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57',
end_date => '31-DEC-25 07.00.00 PM Asia/Riyadh',
auto_drop => FALSE,
enabled => TRUE,
comments => 'TEVS JOB');
END;