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.

45 lines
1.7 KiB

2 years ago
package com.fr.plugin.fg.auth;
import com.fr.log.FineLoggerFactory;
import com.fr.scheduler.QuartzContext;
import com.fr.scheduler.ScheduleJobManager;
import com.fr.third.v2.org.quartz.JobKey;
import com.fr.third.v2.org.quartz.SimpleScheduleBuilder;
import com.fr.third.v2.org.quartz.TriggerBuilder;
import java.util.Map;
public class TempAuthSyncSchedule {
private static Long syncTime = 10000L;
private static String scheduleName = "FGTempAuthSync";
public static void startSchedule(String jobName, String jobGroup, Map<String, Object> parameters) throws Exception {
JobKey jobKey = new JobKey(jobName, jobGroup);
if (QuartzContext.getInstance().getScheduler().checkExists(jobKey)) {
ScheduleJobManager.getInstance().removeJob(jobKey.getName(), jobKey.getGroup());
}
TriggerBuilder triggerBuilder = TriggerBuilder.newTrigger();
triggerBuilder.forJob(jobKey.getName(), jobKey.getGroup())
.withIdentity(jobKey.getName(), jobKey.getGroup())
.startNow();
SimpleScheduleBuilder schedule = SimpleScheduleBuilder.simpleSchedule();
schedule.withMisfireHandlingInstructionNextWithExistingCount();
schedule.withIntervalInMilliseconds(syncTime);
schedule.repeatForever();
triggerBuilder.withSchedule(schedule);
ScheduleJobManager.getInstance().addJob(
jobKey.getName(),
jobKey.getGroup(),
scheduleName,
TempAuthSyncJob.class,
triggerBuilder.build(),
parameters);
FineLoggerFactory.getLogger().info("FGAuth:定时任务已启动完成,执行频率为 " + syncTime/1000 + "秒");
}
}