1

这里我有一个使用 Quartz 调度的示例

public class SampleJob implements Job {

    @Inject
    private MyClass sample;

    @Override
    public void execute( JobExecutionContext jobExecutionContext ) throws JobExecutionException {
        sample.runSampleWithDBConnection();

    }
}

public class SampleScheduling {

    private String cronExpression = ;

    public void run() throws SchedulerException {

        Scheduler scheduler = new StdSchedulerFactory().getScheduler();

        JobDetail job = newJob(SampleJob.class).withIdentity("job1", "group1").build();

        CronTrigger trigger = newTrigger().withIdentity("trigger1", "group1")
                                          .withSchedule(cronSchedule("0 5 * * * ? *"))
                                          .build();

        Date nextRuntime = scheduler.scheduleJob(job, trigger);
        scheduler.start();

    }
}

在上面的示例中,当 Quartz 触发 Job 时,注入的 MyClass 为空。其中 MyClass 是带有方法的简单 java 类

public class MyClass {
    @Inject
    @NamedDatabase("default")
    private Database defaultDb;
    public void runSampleWithDBConnection() {
        defaultDb.getConnection();
    }
}
4

0 回答 0