mirror of
https://gitee.com/ssssssss-team/magic-boot.git
synced 2025-04-22 19:36:23 +08:00
删除quarz
This commit is contained in:
parent
1efda8e2e7
commit
3791861420
@ -52,19 +52,6 @@
|
|||||||
<artifactId>sa-token-spring-boot-starter</artifactId>
|
<artifactId>sa-token-spring-boot-starter</artifactId>
|
||||||
<version>${sa-token.version}</version>
|
<version>${sa-token.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-quartz</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-logging</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.projectlombok</groupId>
|
|
||||||
<artifactId>lombok</artifactId>
|
|
||||||
<optional>true</optional>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
package org.ssssssss.magicboot.form;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.Setter;
|
|
||||||
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增定时任务
|
|
||||||
*/
|
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
public class AddJobForm {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 任务名称
|
|
||||||
*/
|
|
||||||
private String jName;
|
|
||||||
/**
|
|
||||||
* 任务组
|
|
||||||
*/
|
|
||||||
private String jGroup;
|
|
||||||
/**
|
|
||||||
* 触发器名称
|
|
||||||
*/
|
|
||||||
private String tName;
|
|
||||||
/**
|
|
||||||
* 触发器组
|
|
||||||
*/
|
|
||||||
private String tGroup;
|
|
||||||
/**
|
|
||||||
* cron表达式
|
|
||||||
*/
|
|
||||||
private String cron;
|
|
||||||
/**
|
|
||||||
* 执行MagicAPI中的接口,原始内容,不包含code以及message信息
|
|
||||||
* Params:
|
|
||||||
* method – 请求方法
|
|
||||||
*/
|
|
||||||
private String method;
|
|
||||||
/**
|
|
||||||
* 执行MagicAPI中的接口,原始内容,不包含code以及message信息
|
|
||||||
* Params:
|
|
||||||
* path – 请求路径
|
|
||||||
*/
|
|
||||||
private String path;
|
|
||||||
/**
|
|
||||||
* 执行MagicAPI中的接口,原始内容,不包含code以及message信息
|
|
||||||
* Params:
|
|
||||||
* context – 变量信息
|
|
||||||
*/
|
|
||||||
private Map<String,Object> context;
|
|
||||||
}
|
|
@ -1,62 +0,0 @@
|
|||||||
package org.ssssssss.magicboot.quartz;
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.quartz.JobDataMap;
|
|
||||||
import org.quartz.JobExecutionContext;
|
|
||||||
import org.quartz.JobExecutionException;
|
|
||||||
import org.quartz.SchedulerException;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.scheduling.quartz.QuartzJobBean;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.ssssssss.magicapi.provider.MagicAPIService;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 基于magic-api接口的定时任务
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@Component
|
|
||||||
public class MagicApiJob extends QuartzJobBean {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private MagicAPIService magicAPIService;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 这是一个接口任务
|
|
||||||
* 需要执行magic-api接口的代码
|
|
||||||
* 首先你需要配置好magic-api接口,得到接口的请求方式、请求地址、请求参数
|
|
||||||
* 然后这个job会调用在java层调用magic-api的java代码去执行
|
|
||||||
* 这样一个完成的基于magic-api的定时任务接口就完成了
|
|
||||||
*/
|
|
||||||
|
|
||||||
// 获取之前保存的参数
|
|
||||||
JobDataMap jobDataMap = context.getJobDetail().getJobDataMap();
|
|
||||||
// 取出请求方式与路径
|
|
||||||
String path = jobDataMap.getString("path");
|
|
||||||
String method = jobDataMap.getString("method");
|
|
||||||
Optional.ofNullable(path).orElseThrow(()->new RuntimeException("path 不能为空"));
|
|
||||||
Optional.ofNullable(method).orElseThrow(()->new RuntimeException("method 不能为空"));
|
|
||||||
|
|
||||||
// 移除请求方式与路径,剩下的都是参数
|
|
||||||
jobDataMap.remove("path");
|
|
||||||
jobDataMap.remove("method");
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* 执行MagicAPI中的接口,原始内容,不包含code以及message信息
|
|
||||||
* Params:
|
|
||||||
* method – 请求方法
|
|
||||||
* path – 请求路径
|
|
||||||
* context – 变量信息
|
|
||||||
*/
|
|
||||||
log.info("开始执行magicApi定时任务");
|
|
||||||
magicAPIService.execute(method,path,jobDataMap);
|
|
||||||
log.info("结束执行magicApi定时任务");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,78 +0,0 @@
|
|||||||
package org.ssssssss.magicboot.quartz;
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Controller;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
|
||||||
import org.ssssssss.magicboot.form.AddJobForm;
|
|
||||||
import org.ssssssss.magicboot.vo.Result;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 定时任务控制器
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
//@Controller
|
|
||||||
@RequestMapping("/job")
|
|
||||||
public class ScheduledTasksController {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private ScheduledTasksService scheduledTasksService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取所有运行中的任务
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@ResponseBody
|
|
||||||
@RequestMapping("/getAllJob")
|
|
||||||
public Result getAllJob() {
|
|
||||||
return scheduledTasksService.getAllJob();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* 新增一个定时任务
|
|
||||||
* @param form
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@ResponseBody
|
|
||||||
@RequestMapping("/addJob")
|
|
||||||
public Result addJob(AddJobForm form) {
|
|
||||||
scheduledTasksService.addJob(form);
|
|
||||||
return Result.isSuccess("添加定时任务 成功");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 暂停定时任务
|
|
||||||
* @param jName 任务名
|
|
||||||
* @param jGroup 任务组
|
|
||||||
*/
|
|
||||||
@ResponseBody
|
|
||||||
@RequestMapping("/pauseJob")
|
|
||||||
public Result pauseJob(String jName, String jGroup) {
|
|
||||||
scheduledTasksService.pauseJob(jName, jGroup);
|
|
||||||
return Result.isSuccess("暂停定时任务 成功");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 继续定时任务
|
|
||||||
* @param jName 任务名
|
|
||||||
* @param jGroup 任务组
|
|
||||||
*/
|
|
||||||
@ResponseBody
|
|
||||||
@RequestMapping("/resumeJob")
|
|
||||||
public Result resumeJob(String jName, String jGroup) {
|
|
||||||
scheduledTasksService.resumeJob(jName, jGroup);
|
|
||||||
return Result.isSuccess("继续定时任务 成功");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除定时任务
|
|
||||||
* @param jName 任务名
|
|
||||||
* @param jGroup 任务组
|
|
||||||
*/
|
|
||||||
@ResponseBody
|
|
||||||
@RequestMapping("/resumeJob")
|
|
||||||
public Result deleteJob(String jName, String jGroup) {
|
|
||||||
scheduledTasksService.deleteJob(jName, jGroup);
|
|
||||||
return Result.isSuccess("删除定时任务 成功");
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,135 +0,0 @@
|
|||||||
package org.ssssssss.magicboot.quartz;
|
|
||||||
|
|
||||||
import org.quartz.*;
|
|
||||||
import org.quartz.impl.matchers.GroupMatcher;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.ssssssss.magicboot.form.AddJobForm;
|
|
||||||
import org.ssssssss.magicboot.vo.Result;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 定时任务业务控制层
|
|
||||||
*/
|
|
||||||
@Service
|
|
||||||
public class ScheduledTasksService {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private Scheduler scheduler;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取所有运行中的任务
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public Result getAllJob(){
|
|
||||||
try {
|
|
||||||
List<AddJobForm> formList = new ArrayList<>();
|
|
||||||
AddJobForm form = null;
|
|
||||||
for (TriggerKey triggerKey : scheduler.getTriggerKeys(GroupMatcher.anyGroup())) {
|
|
||||||
///通过triggerKey在scheduler中获取trigger对象
|
|
||||||
CronTrigger trigger = (CronTrigger)scheduler.getTrigger(triggerKey);
|
|
||||||
JobDetail jobDetail = scheduler.getJobDetail(trigger.getJobKey());
|
|
||||||
|
|
||||||
form = new AddJobForm();
|
|
||||||
|
|
||||||
form.setMethod(jobDetail.getJobDataMap().getString("method"));
|
|
||||||
form.setPath(jobDetail.getJobDataMap().getString("path"));
|
|
||||||
|
|
||||||
jobDetail.getJobDataMap().remove("method");
|
|
||||||
jobDetail.getJobDataMap().remove("path");
|
|
||||||
|
|
||||||
form.setContext(jobDetail.getJobDataMap());
|
|
||||||
form.setJName(jobDetail.getKey().getName());
|
|
||||||
form.setJGroup(jobDetail.getKey().getGroup());
|
|
||||||
|
|
||||||
form.setTName(trigger.getJobKey().getName());
|
|
||||||
form.setTGroup(trigger.getJobKey().getGroup());
|
|
||||||
|
|
||||||
formList.add(form);
|
|
||||||
}
|
|
||||||
return Result.isSuccess(form);
|
|
||||||
|
|
||||||
} catch (SchedulerException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
return Result.isBad("获取所有任务失败:{}",e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增一个定时任务
|
|
||||||
*/
|
|
||||||
public void addJob(AddJobForm form) {
|
|
||||||
Optional.ofNullable(form).orElseThrow(()->new RuntimeException("参数 不能为空"));
|
|
||||||
Optional.ofNullable(form.getPath()).orElseThrow(()->new RuntimeException("path 不能为空"));
|
|
||||||
Optional.ofNullable(form.getMethod()).orElseThrow(()->new RuntimeException("method 不能为空"));
|
|
||||||
Optional.ofNullable(form.getJName()).orElseThrow(()->new RuntimeException("任务名称 不能为空"));
|
|
||||||
Optional.ofNullable(form.getTName()).orElseThrow(()->new RuntimeException("触发器名称 不能为空"));
|
|
||||||
Optional.ofNullable(form.getCron()).orElseThrow(()->new RuntimeException("cron表达式 不能为空"));
|
|
||||||
|
|
||||||
try {
|
|
||||||
// 携带参数供执行job时调用
|
|
||||||
JobDataMap newJobDataMap = new JobDataMap();
|
|
||||||
newJobDataMap.put("method",form.getMethod());
|
|
||||||
newJobDataMap.put("path",form.getPath());
|
|
||||||
newJobDataMap.putAll(form.getContext());
|
|
||||||
|
|
||||||
JobDetail jobDetail = JobBuilder.newJob(MagicApiJob.class)
|
|
||||||
.withIdentity(form.getJName(), form.getJGroup())
|
|
||||||
.setJobData(newJobDataMap)
|
|
||||||
.build();
|
|
||||||
CronTrigger trigger = TriggerBuilder.newTrigger()
|
|
||||||
.withIdentity(form.getTName(), form.getTGroup())
|
|
||||||
.usingJobData(newJobDataMap)
|
|
||||||
.startNow()
|
|
||||||
.withSchedule(CronScheduleBuilder.cronSchedule(form.getCron()))
|
|
||||||
.build();
|
|
||||||
scheduler.start();
|
|
||||||
scheduler.scheduleJob(jobDetail, trigger);
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 暂停定时任务
|
|
||||||
* @param jName 任务名
|
|
||||||
* @param jGroup 任务组
|
|
||||||
*/
|
|
||||||
public void pauseJob(String jName, String jGroup) {
|
|
||||||
try {
|
|
||||||
scheduler.pauseJob(JobKey.jobKey(jName, jGroup));
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 继续定时任务
|
|
||||||
* @param jName 任务名
|
|
||||||
* @param jGroup 任务组
|
|
||||||
*/
|
|
||||||
public void resumeJob(String jName, String jGroup) {
|
|
||||||
try {
|
|
||||||
scheduler.resumeJob(JobKey.jobKey(jName, jGroup));
|
|
||||||
} catch (SchedulerException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除定时任务
|
|
||||||
* @param jName 任务名
|
|
||||||
* @param jGroup 任务组
|
|
||||||
*/
|
|
||||||
public void deleteJob(String jName, String jGroup) {
|
|
||||||
try {
|
|
||||||
scheduler.deleteJob(JobKey.jobKey(jName, jGroup));
|
|
||||||
} catch (SchedulerException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,112 +0,0 @@
|
|||||||
package org.ssssssss.magicboot.vo;
|
|
||||||
|
|
||||||
import lombok.Getter;
|
|
||||||
import lombok.Setter;
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
public class Result<T> {
|
|
||||||
// 错误码
|
|
||||||
private String code;
|
|
||||||
// 提示信息
|
|
||||||
private String msg;
|
|
||||||
// 具体的内容
|
|
||||||
private T data;
|
|
||||||
// 是否成功
|
|
||||||
private boolean success;
|
|
||||||
// 总数
|
|
||||||
private Long total;
|
|
||||||
|
|
||||||
public Result() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Result(String code, String msg, T data, boolean success) {
|
|
||||||
this.code = code;
|
|
||||||
this.msg = msg;
|
|
||||||
this.data = data;
|
|
||||||
this.success = success;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static<T> Result<T> isSuccess(T data) {
|
|
||||||
Result<T> objectResult = new Result<T>();
|
|
||||||
objectResult.setCode("200");
|
|
||||||
objectResult.setSuccess(true);
|
|
||||||
objectResult.setMsg("成功");
|
|
||||||
objectResult.setData(data);
|
|
||||||
return objectResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static<T> Result<T> isSuccess(T data, Long count) {
|
|
||||||
Result<T> objectResult = new Result<T>();
|
|
||||||
objectResult.setCode("200");
|
|
||||||
objectResult.setSuccess(true);
|
|
||||||
objectResult.setMsg("成功");
|
|
||||||
objectResult.setData(data);
|
|
||||||
objectResult.setTotal(count);
|
|
||||||
return objectResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static<T> Result<T> isBad(T data) {
|
|
||||||
Result<T> objectResult = new Result<T>();
|
|
||||||
objectResult.setCode("400");
|
|
||||||
objectResult.setSuccess(false);
|
|
||||||
objectResult.setMsg("失败");
|
|
||||||
objectResult.setData(data);
|
|
||||||
return objectResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static<T> Result<T> isBad(String msg) {
|
|
||||||
Result<T> objectResult = new Result<>();
|
|
||||||
objectResult.setCode("400");
|
|
||||||
objectResult.setSuccess(false);
|
|
||||||
objectResult.setMsg(msg);
|
|
||||||
return objectResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static<T> Result<T> isBad(String msg, String code) {
|
|
||||||
Result<T> objectResult = new Result<T>();
|
|
||||||
objectResult.setCode(code);
|
|
||||||
objectResult.setSuccess(false);
|
|
||||||
objectResult.setMsg(msg);
|
|
||||||
return objectResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static<T> Result<T> getResult(boolean isSuccess, T data) {
|
|
||||||
if (isSuccess) {
|
|
||||||
return Result.isSuccess(data);
|
|
||||||
}
|
|
||||||
return Result.isBad(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static<T> Result<T> getResult(boolean isSuccess, T data, String msg) {
|
|
||||||
if (isSuccess) {
|
|
||||||
return Result.isSuccess(data);
|
|
||||||
}
|
|
||||||
return Result.isBad(msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static<T> Result<T> getResult(boolean isSuccess, String msg) {
|
|
||||||
if (isSuccess) {
|
|
||||||
return Result.isSuccess(null);
|
|
||||||
}
|
|
||||||
return Result.isBad(msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static<T> Result<T> getResult(boolean isSuccess, String msg, String code) {
|
|
||||||
if (isSuccess) {
|
|
||||||
return Result.isSuccess(null);
|
|
||||||
}
|
|
||||||
return Result.isBad(msg, code);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "Result{" +
|
|
||||||
"code='" + code + '\'' +
|
|
||||||
", msg='" + msg + '\'' +
|
|
||||||
", data=" + data +
|
|
||||||
", success=" + success +
|
|
||||||
'}';
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
spring:
|
|
||||||
quartz:
|
|
||||||
job-store-type: jdbc
|
|
||||||
jdbc:
|
|
||||||
initialize-schema: always
|
|
||||||
schema: classpath:schema/tables_mysql.sql
|
|
@ -9,7 +9,6 @@ spring:
|
|||||||
active: dev
|
active: dev
|
||||||
include:
|
include:
|
||||||
- online
|
- online
|
||||||
- quartz
|
|
||||||
servlet:
|
servlet:
|
||||||
multipart:
|
multipart:
|
||||||
max-file-size: 200MB
|
max-file-size: 200MB
|
||||||
@ -20,7 +19,7 @@ spring:
|
|||||||
datasource:
|
datasource:
|
||||||
url: jdbc:mysql://localhost:3306/magic-boot?useSSL=false&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF8&autoReconnect=true&serverTimezone=Asia/Shanghai
|
url: jdbc:mysql://localhost:3306/magic-boot?useSSL=false&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF8&autoReconnect=true&serverTimezone=Asia/Shanghai
|
||||||
username: root
|
username: root
|
||||||
password: "********"
|
password: root
|
||||||
|
|
||||||
upload:
|
upload:
|
||||||
# oss,disk(磁盘)
|
# oss,disk(磁盘)
|
||||||
@ -45,7 +44,7 @@ magic-api:
|
|||||||
enable: true #开启缓存,默认是不开启的
|
enable: true #开启缓存,默认是不开启的
|
||||||
ttl: 3600000 #有效期1小时,默认-1 即永不过期
|
ttl: 3600000 #有效期1小时,默认-1 即永不过期
|
||||||
resource:
|
resource:
|
||||||
location: data/magic-api
|
location: classpath:data/magic-api
|
||||||
response-code-config:
|
response-code-config:
|
||||||
success: 200 #执行成功的code值
|
success: 200 #执行成功的code值
|
||||||
invalid: 400 #参数验证未通过的code值
|
invalid: 400 #参数验证未通过的code值
|
||||||
|
@ -1,159 +0,0 @@
|
|||||||
DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
|
|
||||||
DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
|
|
||||||
DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
|
|
||||||
DROP TABLE IF EXISTS QRTZ_LOCKS;
|
|
||||||
DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
|
|
||||||
DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
|
|
||||||
DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
|
|
||||||
DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
|
|
||||||
DROP TABLE IF EXISTS QRTZ_TRIGGERS;
|
|
||||||
DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
|
|
||||||
DROP TABLE IF EXISTS QRTZ_CALENDARS;
|
|
||||||
|
|
||||||
|
|
||||||
CREATE TABLE QRTZ_JOB_DETAILS
|
|
||||||
(
|
|
||||||
SCHED_NAME VARCHAR(120) NOT NULL,
|
|
||||||
JOB_NAME VARCHAR(200) NOT NULL,
|
|
||||||
JOB_GROUP VARCHAR(200) NOT NULL,
|
|
||||||
DESCRIPTION VARCHAR(250) NULL,
|
|
||||||
JOB_CLASS_NAME VARCHAR(250) NOT NULL,
|
|
||||||
IS_DURABLE VARCHAR(1) NOT NULL,
|
|
||||||
IS_NONCONCURRENT VARCHAR(1) NOT NULL,
|
|
||||||
IS_UPDATE_DATA VARCHAR(1) NOT NULL,
|
|
||||||
REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
|
|
||||||
JOB_DATA BLOB NULL,
|
|
||||||
PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE QRTZ_TRIGGERS
|
|
||||||
(
|
|
||||||
SCHED_NAME VARCHAR(120) NOT NULL,
|
|
||||||
TRIGGER_NAME VARCHAR(200) NOT NULL,
|
|
||||||
TRIGGER_GROUP VARCHAR(200) NOT NULL,
|
|
||||||
JOB_NAME VARCHAR(200) NOT NULL,
|
|
||||||
JOB_GROUP VARCHAR(200) NOT NULL,
|
|
||||||
DESCRIPTION VARCHAR(250) NULL,
|
|
||||||
NEXT_FIRE_TIME BIGINT(13) NULL,
|
|
||||||
PREV_FIRE_TIME BIGINT(13) NULL,
|
|
||||||
PRIORITY INTEGER NULL,
|
|
||||||
TRIGGER_STATE VARCHAR(16) NOT NULL,
|
|
||||||
TRIGGER_TYPE VARCHAR(8) NOT NULL,
|
|
||||||
START_TIME BIGINT(13) NOT NULL,
|
|
||||||
END_TIME BIGINT(13) NULL,
|
|
||||||
CALENDAR_NAME VARCHAR(200) NULL,
|
|
||||||
MISFIRE_INSTR SMALLINT(2) NULL,
|
|
||||||
JOB_DATA BLOB NULL,
|
|
||||||
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
|
|
||||||
FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
|
|
||||||
REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE QRTZ_SIMPLE_TRIGGERS
|
|
||||||
(
|
|
||||||
SCHED_NAME VARCHAR(120) NOT NULL,
|
|
||||||
TRIGGER_NAME VARCHAR(200) NOT NULL,
|
|
||||||
TRIGGER_GROUP VARCHAR(200) NOT NULL,
|
|
||||||
REPEAT_COUNT BIGINT(7) NOT NULL,
|
|
||||||
REPEAT_INTERVAL BIGINT(12) NOT NULL,
|
|
||||||
TIMES_TRIGGERED BIGINT(10) NOT NULL,
|
|
||||||
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
|
|
||||||
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
|
|
||||||
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE QRTZ_CRON_TRIGGERS
|
|
||||||
(
|
|
||||||
SCHED_NAME VARCHAR(120) NOT NULL,
|
|
||||||
TRIGGER_NAME VARCHAR(200) NOT NULL,
|
|
||||||
TRIGGER_GROUP VARCHAR(200) NOT NULL,
|
|
||||||
CRON_EXPRESSION VARCHAR(200) NOT NULL,
|
|
||||||
TIME_ZONE_ID VARCHAR(80),
|
|
||||||
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
|
|
||||||
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
|
|
||||||
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE QRTZ_SIMPROP_TRIGGERS
|
|
||||||
(
|
|
||||||
SCHED_NAME VARCHAR(120) NOT NULL,
|
|
||||||
TRIGGER_NAME VARCHAR(200) NOT NULL,
|
|
||||||
TRIGGER_GROUP VARCHAR(200) NOT NULL,
|
|
||||||
STR_PROP_1 VARCHAR(512) NULL,
|
|
||||||
STR_PROP_2 VARCHAR(512) NULL,
|
|
||||||
STR_PROP_3 VARCHAR(512) NULL,
|
|
||||||
INT_PROP_1 INT NULL,
|
|
||||||
INT_PROP_2 INT NULL,
|
|
||||||
LONG_PROP_1 BIGINT NULL,
|
|
||||||
LONG_PROP_2 BIGINT NULL,
|
|
||||||
DEC_PROP_1 NUMERIC(13,4) NULL,
|
|
||||||
DEC_PROP_2 NUMERIC(13,4) NULL,
|
|
||||||
BOOL_PROP_1 VARCHAR(1) NULL,
|
|
||||||
BOOL_PROP_2 VARCHAR(1) NULL,
|
|
||||||
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
|
|
||||||
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
|
|
||||||
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE QRTZ_BLOB_TRIGGERS
|
|
||||||
(
|
|
||||||
SCHED_NAME VARCHAR(120) NOT NULL,
|
|
||||||
TRIGGER_NAME VARCHAR(200) NOT NULL,
|
|
||||||
TRIGGER_GROUP VARCHAR(200) NOT NULL,
|
|
||||||
BLOB_DATA BLOB NULL,
|
|
||||||
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
|
|
||||||
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
|
|
||||||
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE QRTZ_CALENDARS
|
|
||||||
(
|
|
||||||
SCHED_NAME VARCHAR(120) NOT NULL,
|
|
||||||
CALENDAR_NAME VARCHAR(200) NOT NULL,
|
|
||||||
CALENDAR BLOB NOT NULL,
|
|
||||||
PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS
|
|
||||||
(
|
|
||||||
SCHED_NAME VARCHAR(120) NOT NULL,
|
|
||||||
TRIGGER_GROUP VARCHAR(200) NOT NULL,
|
|
||||||
PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE QRTZ_FIRED_TRIGGERS
|
|
||||||
(
|
|
||||||
SCHED_NAME VARCHAR(120) NOT NULL,
|
|
||||||
ENTRY_ID VARCHAR(95) NOT NULL,
|
|
||||||
TRIGGER_NAME VARCHAR(200) NOT NULL,
|
|
||||||
TRIGGER_GROUP VARCHAR(200) NOT NULL,
|
|
||||||
INSTANCE_NAME VARCHAR(200) NOT NULL,
|
|
||||||
FIRED_TIME BIGINT(13) NOT NULL,
|
|
||||||
SCHED_TIME BIGINT(13) NOT NULL,
|
|
||||||
PRIORITY INTEGER NOT NULL,
|
|
||||||
STATE VARCHAR(16) NOT NULL,
|
|
||||||
JOB_NAME VARCHAR(200) NULL,
|
|
||||||
JOB_GROUP VARCHAR(200) NULL,
|
|
||||||
IS_NONCONCURRENT VARCHAR(1) NULL,
|
|
||||||
REQUESTS_RECOVERY VARCHAR(1) NULL,
|
|
||||||
PRIMARY KEY (SCHED_NAME,ENTRY_ID)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE QRTZ_SCHEDULER_STATE
|
|
||||||
(
|
|
||||||
SCHED_NAME VARCHAR(120) NOT NULL,
|
|
||||||
INSTANCE_NAME VARCHAR(200) NOT NULL,
|
|
||||||
LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
|
|
||||||
CHECKIN_INTERVAL BIGINT(13) NOT NULL,
|
|
||||||
PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE QRTZ_LOCKS
|
|
||||||
(
|
|
||||||
SCHED_NAME VARCHAR(120) NOT NULL,
|
|
||||||
LOCK_NAME VARCHAR(40) NOT NULL,
|
|
||||||
PRIMARY KEY (SCHED_NAME,LOCK_NAME)
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
commit;
|
|
Loading…
x
Reference in New Issue
Block a user