Skip to content

Commit

Permalink
Change the interface of PriamScheduler (#1049)
Browse files Browse the repository at this point in the history
Change the interface of PriamScheduler
  • Loading branch information
chengw-netflix committed Apr 24, 2023
1 parent 075d2f4 commit b0b5a43
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 8 deletions.
Expand Up @@ -22,10 +22,9 @@
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.spi.JobFactory;
import org.quartz.spi.TriggerFiredBundle;

public class GuiceJobFactory implements JobFactory {
public class GuiceJobFactory implements PriamJobFactory {
public final Injector guice;

@Inject
Expand All @@ -36,7 +35,11 @@ public GuiceJobFactory(Injector guice) {
@Override
public Job newJob(TriggerFiredBundle bundle, Scheduler scheduler) throws SchedulerException {
JobDetail jobDetail = bundle.getJobDetail();
Class<?> jobClass = jobDetail.getJobClass();
return newJob((Class<? extends Task>) jobDetail.getJobClass());
}

@Override
public Job newJob(Class<? extends Task> jobClass) {
Job job = (Job) guice.getInstance(jobClass);
guice.injectMembers(job);
return job;
Expand Down
@@ -0,0 +1,10 @@
package com.netflix.priam.scheduler;

import com.google.inject.ImplementedBy;
import org.quartz.Job;
import org.quartz.spi.JobFactory;

@ImplementedBy(GuiceJobFactory.class)
public interface PriamJobFactory extends JobFactory {
Job newJob(Class<? extends Task> jobClass);
}
Expand Up @@ -29,15 +29,15 @@
public class PriamScheduler {
private static final Logger logger = LoggerFactory.getLogger(PriamScheduler.class);
private final Scheduler scheduler;
private final GuiceJobFactory jobFactory;
private final PriamJobFactory jobProvider;
private final Sleeper sleeper;

@Inject
public PriamScheduler(SchedulerFactory factory, GuiceJobFactory jobFactory, Sleeper sleeper) {
public PriamScheduler(SchedulerFactory factory, PriamJobFactory jobProvider, Sleeper sleeper) {
try {
this.scheduler = factory.getScheduler();
this.scheduler.setJobFactory(jobFactory);
this.jobFactory = jobFactory;
this.scheduler.setJobFactory(jobProvider);
this.jobProvider = jobProvider;
} catch (SchedulerException e) {
throw new RuntimeException(e);
}
Expand Down Expand Up @@ -100,7 +100,7 @@ public void addTaskWithDelay(
}

public void runTaskNow(Class<? extends Task> taskclass) throws Exception {
jobFactory.guice.getInstance(taskclass).execute(null);
jobProvider.newJob(taskclass).execute(null);
}

public void deleteTask(String name) throws SchedulerException {
Expand Down

0 comments on commit b0b5a43

Please sign in to comment.