Authored by fu

readme

Showing 1 changed file with 105 additions and 1 deletions
@@ -27,6 +27,110 @@ @@ -27,6 +27,110 @@
27 27
28 有两种任务注册方式 28 有两种任务注册方式
29 #### 注解方式注册 29 #### 注解方式注册
  30 +注解为YhJobDef。注解中配置任务的相关信息,如执行时间,开始时间,结束时间,任务misfired策略,任务类型,任务执行的参数等。
  31 +定义如下:
  32 +```
  33 +public @interface YhJobDef {
  34 +
  35 + /**
  36 + * 任务名称
  37 + *
  38 + * @return
  39 + */
  40 + String jobName();
  41 +
  42 + /**
  43 + * 任务分组
  44 + *
  45 + * @return
  46 + */
  47 + String jobGroup() default "default";
  48 +
  49 + /**
  50 + * 任务触发类型 0-crontrigger类型,1-simpletrigger类型
  51 + *
  52 + * @return
  53 + */
  54 + JobType jobType() default JobType.CRON;
  55 +
  56 + /**
  57 + * 执行周期 ,当为crontrigger类型时生效
  58 + *
  59 + * @return
  60 + */
  61 + String cron() default "";
  62 +
  63 + /**
  64 + * 任务misfired策略
  65 + *
  66 + * @return
  67 + */
  68 + MisfiredPolicy misfiredPolicy() default MisfiredPolicy.SMART_POLICY;
  69 +
  70 + /**
  71 + * 任务执行上下文
  72 + */
  73 + String context() default "";
  74 +
  75 + /**
  76 + * 开始时间 格式为yyyy-MM-dd HH:mm:ss ,当类型为1时有效
  77 + *
  78 + * @return
  79 + */
  80 + String startDate() default "";
  81 +
  82 + /**
  83 + * 重复次数,当任务类型为1时有效
  84 + *
  85 + * @return
  86 + */
  87 + int repeatCount() default 0;
  88 +
  89 + /**
  90 + * 重复间隔 ,当任务类型为1时有效
  91 + *
  92 + * @return
  93 + */
  94 + int interval() default 0;
  95 +
  96 + /**
  97 + * 任务优先级
  98 + *
  99 + * @return
  100 + */
  101 + int priority() default 5;
  102 +
  103 + /**
  104 + * 任务描述
  105 + *
  106 + * @return
  107 + */
  108 + String desc() default "";
  109 +}
  110 +
  111 +```
  112 +注解方式注册任务代码示例:
  113 +```
  114 +@Service
  115 +@YhJobDef(jobName = "CmbScheduleYhTask", cron = "0 15 2,3,4 * * ?", desc = "每天凌晨刷新招行公钥", misfiredPolicy = MisfiredPolicy.SMART_POLICY, jobType = JobType.CRON)
  116 +public class CmbScheduleYhTask implements YhJob {
  117 + private static final Logger cmbpayLogger = LoggerFactory.getLogger("cmbpayLogger");
  118 + @Autowired
  119 + private CmbNetpayService cmbpayService;
  120 +
  121 + @Override
  122 + public void process(String s) {
  123 + cmbpayLogger.info("\n\n******************** CmbNetpay PublicKey");
  124 + cmbpayService.refreshCmbPublicKey();
  125 + cmbpayLogger.info("\n");
  126 + }
  127 +}
  128 +```
  129 +任务具体执行逻辑类需要定义成一个不同的spring的bean。
  130 +
  131 +#### 调用接口方式注册
  132 +
  133 +通过接口的方式只需要调用JobOperatorService的createJob方法就可以将任务注册到任务中心。方法定义`void createJob(JobDetail jobDetail , String channel) throws JobException`
  134 +参数JobDetail对象为任务的定义。channel为任务注册的来源。即通过注解还是通过调用接口。枚举值为`annotation和portal`
30 135
31 136
32 -#### 调用接口方式注册