QuartzScheduler:将数据库值从一类传递到另一类

用户5776462

我从另一个调度程序(每1小时运行一次)调用调度程序(应根据特定条件运行)。当满足“ if(diffMinutes> = freq)”条件时,将调用QSchedule3 Class中的execute(JobExecutionContext context)方法。如何将从QSchedule2类获取的数据库的内容传递给该execute方法?能做到吗 我可以给我一些建议吗?

QSchedule1类别

public class QSchedule1 {
    public static void main(String[] args) throws SchedulerException {

        Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

        JobDetail job = newJob(Q2.class).withIdentity("cronJob", "q2Job").build();

        CronTrigger cronTrigger = newTrigger().withIdentity("trigger1", "q2Job")
                .withSchedule(CronScheduleBuilder.cronSchedule("0 0/1 * 1/1 * ? *")).build();

        scheduler.scheduleJob(job, cronTrigger);
        scheduler.start();
    }
}

QSchedule2类别

public class QSchedule2 implements Job {

    private static Date date1 = null;
    private static Date date2 = null;

    private static String dateStart = "";
    private static String dateStop = "";

    public void execute(JobExecutionContext context) throws JobExecutionException {
        q2();
    }

    public void q2() {
        String exp = "";
        try {
            Class.forName(driverClassName);
            con = DriverManager.getConnection(url, dbUsername, dbPassword);

            dateStop = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(System.currentTimeMillis());

            ps = con.prepareStatement(
                    "select report_name,frequency,emailDate from ErrorReport where sendReport='Yes'");
            rs = ps.executeQuery();

            while (rs.next()) {

                dateStart = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(rs.getTimestamp(3));

                SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

                date1 = format.parse(dateStart);
                date2 = format.parse(dateStop);

                long diff = date2.getTime() - date1.getTime();

                long diffMinutes = diff / (60 * 1000) % 60;

                String frequency = rs.getString(2);
                int freq = Integer.parseInt(frequency);

                if (diffMinutes >= freq) {
                    exp = "0 0/" + freq + " * 1/1 * ? *";

                    Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();

                    JobDetail job = newJob(Q3.class).withIdentity("cronJob", "q3Job").build();

                    CronTrigger cronTrigger = newTrigger().withIdentity("trigger1", "q3Job")
                            .withSchedule(CronScheduleBuilder.cronSchedule(exp)).build();

                    scheduler.scheduleJob(job, cronTrigger);
                    scheduler.start();
                } else {
                    System.err.println("No email sent");
                }

            }

        } catch (Exception e) {
            System.out.println(e);
            e.printStackTrace();
        } finally {
            try {
                rs.close();
                ps.close();
                con.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

QSchedule3类别

public class QSchedule3 implements Job{
    public void execute(JobExecutionContext context) throws JobExecutionException {
        //Get database contents here
    }
}
西努约翰

您可以使用JobExecutionContext将数据传递到作业。

QSchedule2

JobDetail job = newJob(QSchedule2.class).withIdentity("cronJob", "q2Job")
            .usingJobData("name", name)
            .usingJobData("frequency", frequency)
            .usingJobData("date", date)
            .build();

QSchedule3.execute()

JobDataMap dataMap = context.getJobDetail().getJobDataMap();
String name = dataMap.getString("name");
String frequency = dataMap.getString("frequency");
String date= dataMap.getString("date");

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JAVA:将值从一类传递到另一类

来自分类Dev

将方法作为回调从一类传递到另一类

来自分类Dev

将整数数组从一类传递到另一类

来自分类Dev

将向量从一类传递到另一类作为对象

来自分类Dev

将ArrayList从一类传递到另一类

来自分类Dev

如何将类型从一类传递到另一类?

来自分类Dev

将结果从一类传递到另一类

来自分类Dev

如何将头寸价值从一类传递到另一类

来自分类Dev

将布尔方法从一类传递到另一类

来自分类Dev

将String从一类传递到另一类

来自分类Dev

如何将数组从一类传递到另一类?

来自分类Dev

将泛型从一类传递到另一类?

来自分类Dev

将属性引用从一类传递到另一类

来自分类Dev

如何在Java中将变量从一类传递到另一类?

来自分类Dev

如何在Xamarin中将绑定值从一类传递到另一类?

来自分类Dev

如何将特定变量从一类继承到另一类?

来自分类Dev

无法使用* .get *()将数据从一类获取到另一类

来自分类Dev

如何在iOS中将NSobject类数据从一个类传递到另一类?

来自分类Dev

实现从一类到另一类的类型转换

来自分类Dev

从一类调用方法到另一类?

来自分类Dev

从一类到另一类的方法调用不起作用?

来自分类Dev

从一类调用方法到另一类?

来自分类Dev

获取从一类到另一类的数组长度

来自分类Dev

在Java中将值从一类设置为另一类

来自分类Dev

使用LESS将样式从一类添加到另一类

来自分类Dev

将整数从一类转移到另一类

来自分类Dev

快速地将变量从一类转移到另一类

来自分类Dev

无法在Objective c中将变量的值从一个类传递给另一类

来自分类Dev

如何将链函数从一类添加到另一类?

Related 相关文章

热门标签

归档