
定时任务
瀚高数据库
定时任务


应用场景


功能介绍

hg_job用于定时调用数据库存储过程和SQL语句,可设置时间定期自动执行。时间周期可以细分到年、季度、月、日、小时、分钟、秒。如下为功能架构图。




参数设置及扩展

1、配置环境变量



highgo=#create extension hg_job;highgo=#\dx;


定时任务测试

1、创建定时任务(时间间隔1分钟)
highgo=#create table test(id serial,info text,jobtime timestamp, constraint pk_test_id primary key(id));

highgo=#Select hgjob.job_create($$insert into test(info,jobtime)values('jobid:1',now());$$,$$now()+interval '1 minute'$$,now());

highgo=#select * from hgjob.job;highgo=#select jobid,jobenabled,jobstartrun, jobinterval,jobnextrun,joblastrun,jobuser,jobcount from hgjob.job;

2、修改定时任务
1)修改时间间隔为2分钟
highgo=#select hgjob.job_interval(1,$$now()+'2 minute'$$);highgo=#select jobid,jobenabled,jobstartrun, jobinterval,jobnextrun,joblastrun,jobuser,jobcount from hgjob.job;highgo=#select * from test where jobtime>'2021-09-29 15:39';


highgo=#select hgjob.job_what(1,$$update test set info='jobid:1:updated' where jobtime>'2021-09-29 15:39';$$);highgo=#select * from test where jobtime>='2021-09-29 15:29';

highgo=#select jobid,jobenabled,jobwhat,jobstartrun, jobinterval,jobnextrun,joblastrun,jobuser,jobcount from hgjob.job;

highgo=#select hgjob.job_change(1,$$insert into test(info,jobtime)values('jobid:1:job_change',now());$$,$$now()+interval '5 minutes'$$,now()+interval '5 minutes');highgo=#select jobid,jobenabled,jobwhat,jobstartrun, jobinterval,jobnextrun,joblastrun,jobuser,jobcount from hgjob.job;highgo=#select * from test order by jobtime desc;

highgo=#select jobid,jobenabled,jobwhat,jobstartrun, jobinterval,jobnextrun,joblastrun,jobuser,jobcount from hgjob.job;highgo=#select hgjob.job_nextrun(1, now()+ interval '3 minutes');highgo=#select jobid,jobenabled,jobwhat,jobstartrun, jobinterval,jobnextrun,joblastrun,jobuser,jobcount from hgjob.job;

highgo=# select * from test order by jobtime desc;

highgo=#select * from test order by jobtime desc;highgo=#select * from hgjob.job_stop(1);highgo=#select jobid,jobenabled,jobwhat,jobstartrun, jobinterval,jobnextrun,joblastrun,jobuser,jobcount from hgjob.job;highgo=#select * from test order by jobtime desc;


highgo=# select * from hgjob.job;highgo=# select hgjob.job_start(4, now()+interval '1 minute');highgo=# select * from hgjob.job;

highgo=#select * from hgjob.job_run(4);highgo=#select * from hgjob.job;highgo=#select * from test order by jobtime desc;

highgo=#select * from hgjob.job;highgo=#select * from test order by jobtime desc;highgo=#select * from hgjob.job_delete(4);highgo=#select * from hgjob.job;


总结
瀚高数据库的定时任务hg_job集成在瀚高数据库系统中,一个定时任务同一时间只能有一个作业队列进程在运行。
通过使用定时任务可在固定时间内定期自动执行任务,减少数据库操作人员的重复劳动,提高工作效率。

文章转载自瀚高数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




