Listener 优化

This commit is contained in:
MaxKey
2024-03-09 21:45:01 +08:00
parent a7bf8fa62a
commit fd27ae9e7a
4 changed files with 25 additions and 28 deletions

View File

@@ -45,11 +45,11 @@ public class MaxKeyMgtListenerConfig {
Scheduler scheduler,
SessionManager sessionManager) throws SchedulerException {
ListenerAdapter.addListener(
SessionListenerAdapter.class,
scheduler,
new ListenerParameter().add("sessionManager",sessionManager).build(),
SessionListenerAdapter.class,
"0 0/10 * * * ?",//10 minutes
SessionListenerAdapter.class.getSimpleName()
new ListenerParameter().add("sessionManager",sessionManager).build()
);
logger.debug("Session ListenerAdapter inited .");
return "sessionListenerAdapter";
@@ -63,11 +63,10 @@ public class MaxKeyMgtListenerConfig {
) throws SchedulerException {
ListenerAdapter.addListener(
scheduler,
DynamicGroupsListenerAdapter.class,
scheduler,
new ListenerParameter().add("groupsService",groupsService).build(),
cronSchedule,
DynamicGroupsListenerAdapter.class.getSimpleName()
new ListenerParameter().add("groupsService",groupsService).build()
);
logger.debug("DynamicGroups ListenerAdapter inited .");
return "dynamicGroupsListenerAdapter";

View File

@@ -30,7 +30,7 @@ public class DynamicGroupsListenerAdapter extends ListenerAdapter implements Jo
private static final long serialVersionUID = 8831626240807856084L;
private GroupsService groupsService = null;
transient GroupsService groupsService;
@Override
public void execute(JobExecutionContext context){

View File

@@ -34,10 +34,10 @@ public class ListenerAdapter {
JobExecutionContext context;
public static final class JOBSTATUS{
public static int STOP = 0;
public static int RUNNING = 1;
public static int ERROR = 2;
public static int FINISHED = 3;
public static final int STOP = 0;
public static final int RUNNING = 1;
public static final int ERROR = 2;
public static final int FINISHED = 3;
}
protected int jobStatus = JOBSTATUS.STOP;
@@ -45,35 +45,33 @@ public class ListenerAdapter {
void init(JobExecutionContext context){
this.context = context;
};
}
@SuppressWarnings("unchecked")
public <T> T getParameter(String name, Class<T> requiredType) {
return (T) context.getMergedJobDataMap().get(name);
};
}
public static void addListener(
Class <? extends Job> jobClass,
Scheduler scheduler ,
JobDataMap jobDataMap,
String cronSchedule,
String identity
Class <? extends Job> jobClass,
String cronSchedule,
JobDataMap jobDataMap
) throws SchedulerException {
String identity = jobClass.getSimpleName();
logger.debug("Cron {} , Job schedule {} ", cronSchedule , identity );
JobDetail jobDetail =
JobBuilder.newJob(jobClass)
.withIdentity(identity, identity + "Group")
.build();
JobDetail jobDetail = JobBuilder.newJob(jobClass)
.withIdentity(identity, identity + "Group")
.build();
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cronSchedule);
CronTrigger cronTrigger =
TriggerBuilder.newTrigger()
.withIdentity("trigger" + identity, identity + "TriggerGroup")
.usingJobData(jobDataMap)
.withSchedule(scheduleBuilder)
.build();
CronTrigger cronTrigger = TriggerBuilder.newTrigger()
.withIdentity("trigger" + identity, identity + "TriggerGroup")
.usingJobData(jobDataMap)
.withSchedule(scheduleBuilder)
.build();
scheduler.scheduleJob(jobDetail,cronTrigger);
}

View File

@@ -33,7 +33,7 @@ public class SessionListenerAdapter extends ListenerAdapter implements Job , S
private static final long serialVersionUID = 4782358765969474833L;
SessionManager sessionManager;
transient SessionManager sessionManager;
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {