当前位置: 首页 > news >正文

gbase8s的定时任务的使用方式基础版-创建简单的定时任务

1. 本次模拟的库表结构和数据

  • 建两张表test_db和test_db2,
> create database test_db in datadbs1;Database closed.Database created.
> create table test_db(id int,tm timestamp);Table created.> create table test_db2(id int,tm timestamp);Table created.> insert into test_db values(1,sysdate);1 row(s) inserted.> select * from test_db;id  1
tm  2025-07-31 09:20:171 row(s) retrieved.>

2. 模拟的任务

  • 每分钟从将test_db表的数据查询插入到test_db2中
  • 每小时从将test_db表的数据查询插入到test_db2中
  • 每天0点从将test_db表的数据查询插入到test_db2中

3. 准备工作

  • 查看安装目录的etc/sysadmin下是否有stop文件,如果有则删除重启,如果没有则可以使用
[gbasedbt@node2 sysadmin]$ onstat -g dis
Your evaluation license will expire on 2026-07-09 00:00:00
On-Line -- Up 00:21:11 -- 2300592 Kbytes
There are 5 servers found
Server        : test363
Server Number : 27
Server Type   : IDS
Server Status : Up
Server Version: GBase Database Server Version 12.10.FC4G1TL
Shared Memory : 0x44000000
GBASEDBTDIR   : /home/gbasedbt/gbase363
ONCONFIG      : /home/gbasedbt/gbase363/etc/onconfig.test363
SQLHOSTS      : /home/gbasedbt/gbase363/etc/sqlhosts.test363
Host          : node2[gbasedbt@node2 sysadmin]$ ls -l /home/gbasedbt/gbase363/etc/stop
-rw-rw-r-- 1 gbasedbt gbasedbt 0 Oct 30 22:27 /home/gbasedbt/gbase363/etc/stop
[gbasedbt@node2 sysadmin]$ rm -rf /home/gbasedbt/gbase363/etc/stop
[gbasedbt@node2 sysadmin]$ onmode -ky
Your evaluation license will expire on 2026-07-09 00:00:00
[gbasedbt@node2 sysadmin]$ oninit -vy

4. 模拟任

4. 模拟任务1-每分钟将test_db的数据插入到test_db2中

  • 为了更好的区分定时任务的类别,可以在定时任务组中提前定义一个组类
dbaccess sysadmin -INSERT INTO ph_group (group_name,group_description)
VALUES(
'trx',
'trx user task'
);
  • trx:是定义的组名,可以随意定义,但是最好是小写,大写需要其他参数
  • trx user task:是组名的注释

插入定时任务的样例

dbaccess sysadmin -INSERT INTO ph_task
( tk_name,
tk_description,
tk_type,
tk_dbs,
tk_group,
tk_execute,
tk_start_time,
tk_stop_time,
tk_next_execution,
tk_frequency,
tk_Monday,
tk_Tuesday,
tk_Wednesday,
tk_Thursday,
tk_Friday,
tk_Saturday,
tk_Sunday)
VALUES
( "data insert",   --定义的定时任务名称
" every 1 minutes  insert .",   -定时任务的描述
"TASK",     --定时任务的类型,选task即可
"test_db",  --执行的数据库
"TRX",      --上述在分区表中创建的分组名,
"insert into test_db:test_db2 select * from test_db:test_db",  --执行的sql
DATETIME(00:00:00) HOUR TO SECOND,   --执行的起始时间为0点
DATETIME(23:59:00) HOUR TO SECOND,   --执行的结束时间
'2025-07-31 10:44:00',  --指定开始执行sql的时间
INTERVAL ( 1 ) MINUTE TO MINUTE,     --执行的时间的间隔
't',     --下面是周一到周天是否执行的设置,全部为t表示每天都执行
't',
't',
't',
't',
't',
't');
dbaccess sysadmin -INSERT INTO ph_task
( tk_name,
tk_description,
tk_type,
tk_dbs,
tk_group,
tk_execute,
tk_start_time,
tk_stop_time,
tk_next_execution,
tk_frequency,
tk_Monday,
tk_Tuesday,
tk_Wednesday,
tk_Thursday,
tk_Friday,
tk_Saturday,
tk_Sunday)
VALUES
( "data insert",   
" every 1 minutes  insert .",
"TASK",
"test_db",
"TRX",
"insert into test_db2(id,tm) select * from test_db",
DATETIME(00:00:00) HOUR TO SECOND,
DATETIME(23:59:00) HOUR TO SECOND,
'2025-07-31 10:44:00',
INTERVAL ( 1 ) MINUTE TO MINUTE,
't',
't',
't',
't',
't',
't',
't');

5. 模拟任务2-每小时0点执行一次

dbaccess sysadmin -INSERT INTO ph_task
( tk_name,
tk_description,
tk_type,
tk_dbs,
tk_group,
tk_execute,
tk_start_time,
tk_stop_time,
tk_next_execution,
tk_frequency,
tk_Monday,
tk_Tuesday,
tk_Wednesday,
tk_Thursday,
tk_Friday,
tk_Saturday,
tk_Sunday)
VALUES
( "data insert2",   
" every 1 minutes  insert .",
"TASK",
"test_db",
"TRX",
"insert into test_db2(id,tm) select * from test_db",
DATETIME(00:00:00) HOUR TO SECOND,
DATETIME(23:59:00) HOUR TO SECOND,
'2025-07-31 11:00:00',
INTERVAL ( 1 ) HOUR TO hour,
't',
't',
't',
't',
't',
't',
't');

6. 每天零点执行-启动时间为0点,结束时间为0.59,间隔一小时执行,保证了只会在0点执行

dbaccess sysadmin -INSERT INTO ph_task
( tk_name,
tk_description,
tk_type,
tk_dbs,
tk_group,
tk_execute,
tk_start_time,
tk_stop_time,
tk_next_execution,
tk_frequency,
tk_Monday,
tk_Tuesday,
tk_Wednesday,
tk_Thursday,
tk_Friday,
tk_Saturday,
tk_Sunday)
VALUES
( "data insert3",   
" every 1 minutes  insert .",
"TASK",
"test_db",
"TRX",
"insert into test_db2(id,tm) select * from test_db",
DATETIME(00:00:00) HOUR TO SECOND,
DATETIME(23:59:00) HOUR TO SECOND,
'2025-08-01 00:00:00',
INTERVAL ( 1 ) day TO day,
't',
't',
't',
't',
't',
't',
't');

7. 涉及的表结构和表的作用

  • ph_task:存储设计的定时任务
  • ph_run:查看对应id编号的定时任务执行时间等信息
  • ph_alert:查看定时任务对应id的警报信息
  • ph_threshold:关于有阈值设置的定时任务的阈值设置
  • ph_group:插入组名

8. ph_task表的含义

select * from ph_task order by tk_id desc limit 1;tk_id               48
tk_name             data insert
tk_description       every 1 minutes  insert .
tk_type             TASK
tk_sequence         0
tk_result_table
tk_create
tk_dbs              test_db
tk_execute          insert into test_db2(id,tm) select * from test_db
tk_delete             0 01:00:00
tk_start_time       00:00:00
tk_stop_time        23:59:00
tk_frequency          0 00:01:00
tk_next_execution   2025-07-31 10:44:00
tk_total_executio+  0
tk_total_time       0.00
tk_monday           t
tk_tuesday          t
tk_wednesday        t
tk_thursday         t
tk_friday           t
tk_saturday         t
tk_sunday           t
tk_attributes       0
tk_group            trx
tk_enable           t
tk_priority         0查询到 1 行。
  • tk_id:定时任务的创建序号,由系统自动生成即可。
  • tk_name:任务名称,此列要求名称不能重复
  • tk_description:关于任务的描述注释,可以写也可以不写
  • tk_type:任务类型
    • task:以特定的时间和频率调用操作,常规操作
    • sensor:传感器任务,由其他结果集触发,一个从结果表中收集、存储和清除数据的任务
    • startup task:仅在服务器启动时运行的任务
    • startup sensor:仅在服务器启动时运行的传感器
  • tk_result_table:传感器用来收集数据的结果集名称
  • tk_create:用于创建传感器收集数据结果表的建表语句
  • tk_dbs:运行任务的数据库,默认是sysadmin,需要在test库运行定时任务就写test
  • tk_execute:定时执行的sql语句
  • tk_delete:删除结果表中遭遇该时间间隔的数据
  • tk_start_time:任务传感器开始执行的时间,在这个时间之前,定时任务不执行
  • tk_stop_time:tk_start_time和tk_stop_time共同约束了定时任务可执行的时间阈值
  • tk_frequency:定时任务执行的间隔时间
  • tk_next_execution:定时任务下次执行的时间,当一个定时任务创建后,可以指定其下次执行的时间节点,之后按照间隔时间进行下次执行
  • tk_total_executions:定时任务执行的总次数
  • tk_monday、tk_tuesday、tk_wednesday、tk_thursday、tk_friday、tk_saturday、tk_sunday:七个字段,代表是否在周一到周天七天执行,如果七天都执行都为true
  • tk_group:这个定时任务的组名,主要是用于区分各个定时任务的分类,也可以默认
  • tk_priority :定时任务的优先级,主要是在多个定时任务同一时间执行时,执行顺序的优先级

9. ph_run-定时任务的执行

select * from ph_run order by run_id desc limit 1;run_id        83
run_task_id   48
run_task_seq  8
run_retcode   0
run_time      2025-10-30 22:12:00
run_duration  0.001638768269
run_ztime     1761833135
run_btime     1761833135
run_mttime    1761833520
  • run_id:执行生成的id,只代表执行顺序
  • run_task_id:关联ph_task的task_id,代表执行的那个任务
  • run_task_seq:该任务执行的编号
  • run_retcode:用户定义的spl例程返回的信息
  • run_time:是什么时候执行的,执行时间
  • run_duration:执行耗费的时间

10. ph_group-关于定时任务组的信息

select * from ph_group order by group_id desc limit 1;group_id           13
group_name         trx
group_description  trx user task
  • group_id:group组的id
  • group_name:group组的名称
  • group_description:组的注释
http://www.dtcms.com/a/550881.html

相关文章:

  • 8款主流软件项目管理工具横向测评
  • 江西求做网站网站企业有哪些
  • 手机app与手机网站的区别wordpress设置内容标题
  • 手机网站的推广现代企业信息管理系统
  • 核货宝S2B2C系统核心优势:赋能B端,服务C端,驱动增长
  • Java 黑马程序员学习笔记(进阶篇22)
  • 网页制作用哪个软件宁波seo的公司联系方式
  • 如何理解不同行业AI决策系统的功能差异?
  • 长沙英文网站建设公司郑州大型网站公司
  • 建设部网站村镇建设口碑营销的产品
  • 网站建设网站模版广东省建设工程交易中心
  • 深圳网站建设培训班本科自考有哪些科目
  • RHEL 9.6 从源码安装 Open vSwitch 完整指南
  • 域名跟空间都有了怎么做网站网站的思维导图怎么做
  • 高端建站用什么软件菏泽 做网站 多少钱
  • 网站导航页设计标识设计公司排名
  • 【符号论】群的概念与五行关系的循环群结构
  • 宜兴网站建设价格信息做海报的素材那个网站比较好
  • 网站开发用到的技术上海网站建设上海
  • 昆山高端网站建设咨询设计公司职位
  • 你问GeeLark答 QA 第8章
  • 南京360推广 网站建设网页视频加速器
  • 有谁知道网站优化怎么做南宁网站建设信息推荐
  • 永川区网站建设名词解释搜索引擎优化
  • 点云深度学习:KPFCNN(Kernel Point Convolutional Neural Network)
  • Rust:类型 impl
  • STM32项目分享:避障小车设计
  • 从密集到稀疏:InfLLM-V2 如何实现零参数开销的长文本高效处理
  • 网站推广平台排行如何免费建立官方网站
  • 基于MATLAB的Copula函数实现合集