JobModel.java 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.xxl.quartz;
  2. import org.quartz.CronScheduleBuilder;
  3. import org.quartz.CronTrigger;
  4. import org.quartz.Job;
  5. import org.quartz.JobBuilder;
  6. import org.quartz.JobDataMap;
  7. import org.quartz.JobDetail;
  8. import org.quartz.Scheduler;
  9. import org.quartz.TriggerBuilder;
  10. import org.quartz.TriggerKey;
  11. /**
  12. * 任务model
  13. * @author xuxueli 2015-12-1 16:01:19
  14. */
  15. public class JobModel {
  16. // param
  17. private String group;
  18. private String name;
  19. private String cronExpression;
  20. private Class<? extends Job> jobClass;
  21. public JobModel(String name, String cronExpression, Class<? extends Job> jobClass) {
  22. this.group = Scheduler.DEFAULT_GROUP;
  23. this.name = name;
  24. this.cronExpression = cronExpression;
  25. this.jobClass = jobClass;
  26. }
  27. public String getGroup() {
  28. return group;
  29. }
  30. public void setGroup(String group) {
  31. this.group = group;
  32. }
  33. public String getName() {
  34. return name;
  35. }
  36. public void setName(String name) {
  37. this.name = name;
  38. }
  39. public String getCronExpression() {
  40. return cronExpression;
  41. }
  42. public void setCronExpression(String cronExpression) {
  43. this.cronExpression = cronExpression;
  44. }
  45. public Class<? extends Job> getJobClass() {
  46. return jobClass;
  47. }
  48. public void setJobClass(Class<? extends Job> jobClass) {
  49. this.jobClass = jobClass;
  50. }
  51. // TriggerKey
  52. public TriggerKey getTriggerKey() {
  53. return TriggerKey.triggerKey(this.name, this.group);
  54. }
  55. // JobDetail
  56. public JobDetail getJobDetail() {
  57. return JobBuilder.newJob(jobClass).withIdentity(this.name, this.group).build();
  58. }
  59. // JobDataMap.add
  60. public JobModel addJobData(String key, Object value) {
  61. JobDataMap jobDataMap = this.getJobDetail().getJobDataMap();
  62. jobDataMap.put(key, value);
  63. return this;
  64. }
  65. // CronTrigger
  66. public CronTrigger cronTrigger() {
  67. CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(this.cronExpression);
  68. return TriggerBuilder.newTrigger().withIdentity(this.getTriggerKey()).withSchedule(cronScheduleBuilder).build();
  69. }
  70. }