You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
3.1 KiB
77 lines
3.1 KiB
/* |
|
* Copyright (C), 2018-2021 |
|
* Project: starter |
|
* FileName: DingTalkScheduleHelper |
|
* Author: Louis |
|
* Date: 2021/4/21 15:52 |
|
*/ |
|
package com.fr.plugin.xxxx.dingtalksyn.helper; |
|
|
|
import com.fr.plugin.xxxx.dingtalksyn.bean.DingTalkJobConstructor; |
|
import com.fr.plugin.xxxx.dingtalksyn.job.DingTalkSyncMemberJob; |
|
import com.fr.scheduler.ScheduleJobManager; |
|
import com.fr.third.v2.org.quartz.CronScheduleBuilder; |
|
import com.fr.third.v2.org.quartz.TriggerBuilder; |
|
|
|
import java.util.ArrayList; |
|
import java.util.HashMap; |
|
import java.util.TimeZone; |
|
|
|
/** |
|
* <Function Description><br> |
|
* <DingTalkScheduleHelper> |
|
* |
|
* @author fr.open |
|
* @since 1.0.0 |
|
*/ |
|
public class DingTalkScheduleHelper { |
|
public static final String DINGTALK_SCHEDULE_SYN_MEMBER_JOB_NAME = "MqhDingTalkSynDepMemberJob"; |
|
public static final String DINGTALK_SCHEDULE_SYN_MEMBER_TRIGGER_NAME = "MqhDingTalkSynDepMemberTrigger"; |
|
public static final String DINGTALK_SCHEDULE_SYN_MEMBER_GROUP = "MqhDingTalkSynDepMemberGroup"; |
|
public static final String DINGTALK_SCHEDULE_SYN_MEMBER_TRIGGER_GROUP = "MqhDingTalkSynDepMemberTriggerGroup"; |
|
|
|
private DingTalkScheduleHelper() { |
|
} |
|
|
|
public static DingTalkScheduleHelper getInstance() { |
|
return HOLDER.INSTANCE; |
|
} |
|
|
|
public void startSynMemberSchedule(String cronCondition) throws Exception { |
|
DingTalkJobConstructor jobConstructor = (new DingTalkJobConstructor()) |
|
.cron(cronCondition).jobName(DINGTALK_SCHEDULE_SYN_MEMBER_JOB_NAME) |
|
.jobGroup(DINGTALK_SCHEDULE_SYN_MEMBER_GROUP).triggerName(DINGTALK_SCHEDULE_SYN_MEMBER_TRIGGER_NAME) |
|
.triggerGroup(DINGTALK_SCHEDULE_SYN_MEMBER_TRIGGER_GROUP).jobClazz(DingTalkSyncMemberJob.class); |
|
this.startSchedule(jobConstructor); |
|
} |
|
|
|
public void startSchedule(DingTalkJobConstructor var1) throws Exception { |
|
if (var1 != null) { |
|
String var2 = var1.getCron(); |
|
String var3 = var1.getTriggerName(); |
|
String var4 = var1.getTriggerGroup(); |
|
String var5 = var1.getJobName(); |
|
String var6 = var1.getJobGroup(); |
|
Class var7 = var1.getJobClazz(); |
|
TriggerBuilder var8 = TriggerBuilder.newTrigger(); |
|
var8.withIdentity(var3, var4); |
|
var8.withSchedule(CronScheduleBuilder.cronSchedule(var2).withMisfireHandlingInstructionFireAndProceed().inTimeZone(TimeZone.getTimeZone(TimeZone.getDefault().getID()))).startNow(); |
|
var8.forJob(var5, var6); |
|
ArrayList var9 = new ArrayList(); |
|
var9.add(var8.build()); |
|
ScheduleJobManager.getInstance().removeJob(var5, var6); |
|
ScheduleJobManager.getInstance().addJob(var5, var6, "jobDescription", var7, var9, new HashMap()); |
|
} |
|
} |
|
|
|
public void stopSchedule(String var1, String var2) { |
|
ScheduleJobManager.getInstance().removeJob(var1, var2); |
|
} |
|
|
|
public static class HOLDER { |
|
private static final DingTalkScheduleHelper INSTANCE = new DingTalkScheduleHelper(); |
|
|
|
public HOLDER() { |
|
} |
|
} |
|
}
|
|
|