...
|
...
|
@@ -27,6 +27,110 @@ |
|
|
|
|
|
有两种任务注册方式
|
|
|
#### 注解方式注册
|
|
|
注解为YhJobDef。注解中配置任务的相关信息,如执行时间,开始时间,结束时间,任务misfired策略,任务类型,任务执行的参数等。
|
|
|
定义如下:
|
|
|
```
|
|
|
public @interface YhJobDef {
|
|
|
|
|
|
/**
|
|
|
* 任务名称
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
String jobName();
|
|
|
|
|
|
/**
|
|
|
* 任务分组
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
String jobGroup() default "default";
|
|
|
|
|
|
/**
|
|
|
* 任务触发类型 0-crontrigger类型,1-simpletrigger类型
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
JobType jobType() default JobType.CRON;
|
|
|
|
|
|
/**
|
|
|
* 执行周期 ,当为crontrigger类型时生效
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
String cron() default "";
|
|
|
|
|
|
/**
|
|
|
* 任务misfired策略
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
MisfiredPolicy misfiredPolicy() default MisfiredPolicy.SMART_POLICY;
|
|
|
|
|
|
/**
|
|
|
* 任务执行上下文
|
|
|
*/
|
|
|
String context() default "";
|
|
|
|
|
|
/**
|
|
|
* 开始时间 格式为yyyy-MM-dd HH:mm:ss ,当类型为1时有效
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
String startDate() default "";
|
|
|
|
|
|
/**
|
|
|
* 重复次数,当任务类型为1时有效
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
int repeatCount() default 0;
|
|
|
|
|
|
/**
|
|
|
* 重复间隔 ,当任务类型为1时有效
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
int interval() default 0;
|
|
|
|
|
|
/**
|
|
|
* 任务优先级
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
int priority() default 5;
|
|
|
|
|
|
/**
|
|
|
* 任务描述
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
String desc() default "";
|
|
|
}
|
|
|
|
|
|
```
|
|
|
注解方式注册任务代码示例:
|
|
|
```
|
|
|
@Service
|
|
|
@YhJobDef(jobName = "CmbScheduleYhTask", cron = "0 15 2,3,4 * * ?", desc = "每天凌晨刷新招行公钥", misfiredPolicy = MisfiredPolicy.SMART_POLICY, jobType = JobType.CRON)
|
|
|
public class CmbScheduleYhTask implements YhJob {
|
|
|
private static final Logger cmbpayLogger = LoggerFactory.getLogger("cmbpayLogger");
|
|
|
@Autowired
|
|
|
private CmbNetpayService cmbpayService;
|
|
|
|
|
|
@Override
|
|
|
public void process(String s) {
|
|
|
cmbpayLogger.info("\n\n******************** CmbNetpay PublicKey");
|
|
|
cmbpayService.refreshCmbPublicKey();
|
|
|
cmbpayLogger.info("\n");
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
任务具体执行逻辑类需要定义成一个不同的spring的bean。
|
|
|
|
|
|
#### 调用接口方式注册
|
|
|
|
|
|
通过接口的方式只需要调用JobOperatorService的createJob方法就可以将任务注册到任务中心。方法定义`void createJob(JobDetail jobDetail , String channel) throws JobException`
|
|
|
参数JobDetail对象为任务的定义。channel为任务注册的来源。即通过注解还是通过调用接口。枚举值为`annotation和portal`。
|
|
|
|
|
|
|
...
|
...
|
|