定时任务系统表设计

计划表

CREATE TABLE `crontab_scheme` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '最后操作人的id',
  `snapshot_id` int(11) NOT NULL DEFAULT '0' COMMENT '快照id',
  `years` smallint(11) unsigned NOT NULL DEFAULT '0' COMMENT '年',
  `months` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '月',
  `days` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '日',
  `weekdays` tinyint(4) NOT NULL DEFAULT '-1' COMMENT '周,0表示星期天,1表示星期1,-1表示忽略',
  `hours` tinyint(4) NOT NULL DEFAULT '-1' COMMENT '时',
  `minutes` tinyint(4) NOT NULL DEFAULT '-1' COMMENT '分',
  `seconds` tinyint(4) NOT NULL DEFAULT '-1' COMMENT '秒',
  `second_range` int(11) NOT NULL DEFAULT '0' COMMENT '时间范围,单位秒',
  `crontab_task_id` int(11) unsigned NOT NULL COMMENT '任务id',
  `must_exec_times` int(11) unsigned NOT NULL DEFAULT '1' COMMENT '规定时间内必须执行次数',
  `today_exec_times` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '当天执行次数',
  `success_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '执行成功时间',
  `failure_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '执行失败时间',
  `state` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '开关 0-关闭 1-启用',
  `run_status` tinyint(4) unsigned NOT NULL DEFAULT '0' COMMENT '执行状态0未执行1入列中2执行中3执行失败4执行成功',
  `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_yddmw` (`days`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

任务表

CREATE TABLE `crontab_task` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `user_id` int(11) NOT NULL DEFAULT '0' COMMENT '最后操作人的id',
  `snapshot_id` int(11) NOT NULL DEFAULT '0' COMMENT '快照id',
  `crontab_task_name` varchar(30) NOT NULL COMMENT '任务名',
  `appid` int(11) NOT NULL DEFAULT '0' COMMENT 'appid,0为外部调用',
  `url` varchar(100) NOT NULL DEFAULT '' COMMENT 'url,如果是内部调用,请填写path即可,http_method=0时,请填写绝对路径',
  `http_method` tinyint(4) unsigned NOT NULL DEFAULT '1' COMMENT '请求方式 0-执行urll绝对路径里的程序 1-GET 2-POST',
  `timeout` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '超时时间 0-无穷最大86400秒',
  `params` text NOT NULL COMMENT '请求参数',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='crontab任务表';
添加新评论