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 | -#### 调用接口方式注册 |
-
Please register or login to post a comment