当前位置: 首页 > 知识库问答 >
问题:

java quartz调度程序在特定时间运行

宦正诚
2023-03-14

例如,我想编写一个Java程序,在每天上午12点打印“Hello World”,如何使用Quartz调度器实现这一点?

Trigger trigger = TriggerUtils.makeDailyTrigger(0, 0);
trigger.setName("trigger1");
trigger.setGroup("group1");

这样地?我应该把打印“hello world”方法放在哪里?

共有3个答案

马承
2023-03-14

您必须通过实现作业接口并提供执行方法的实现来创建自定义作业。在execute方法中,您可以打印“hello world”。然后你可以这样安排你的工作

scheduler.scheduleJob(job, trigger);

有关分步详细信息,请参阅此链接:Quartz教程

秦鸿羽
2023-03-14

>

  • 下载放入lib文件夹的quartz Jar构建项目
  • 创建要从中计划任务的类(作业)

    import org.apache.log4j.Logger;
    import org.quartz.Job;
    import org.quartz.JobExecutionContext;
    import org.quartz.JobExecutionException;
    
    public class MyJob implements Job  {
        private Logger log = Logger.getLogger(MyJob.class);
        @Override
        public void execute(JobExecutionContext context) throws JobExecutionException {
    
            log.debug("Hi....");
            System.out.println("Corn Executing.....");
    
        }
    }
    

    为计划任务创建类

    import org.quartz.JobBuilder;
    import org.quartz.JobDetail;
    import org.quartz.Scheduler;
    import org.quartz.SchedulerException;
    import org.quartz.SchedulerFactory;
    import org.quartz.SimpleScheduleBuilder;
    import org.quartz.Trigger;
    import org.quartz.TriggerBuilder;
    import org.quartz.impl.StdSchedulerFactory;
    
    public class JobScheduler {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            try {
                JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("myjob").build();
    
                Trigger trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(30).repeatForever()).build();
    
                SchedulerFactory schFactory = new StdSchedulerFactory();
                Scheduler scheduler = schFactory.getScheduler(); 
                scheduler.start();
                scheduler.scheduleJob(job, trigger);
    
            }catch (SchedulerException e) {
    
                e.printStackTrace();
            }
        }
    }
    

  • 邰建业
    2023-03-14

    可以使用表达式来计划作业的执行。例如。:

    public static class HelloJob implements Job {
        @Override
        public void execute(JobExecutionContext ctx) throws JobExecutionException {
            System.out.println("Hello World");
        }
    }
    
    public static void main(String[] args) throws SchedulerException {
        String exp = "0 0 0 1/1 * ? *";
    
        SchedulerFactory factory = new StdSchedulerFactory();
        Scheduler scheduler = factory.getScheduler();
        scheduler.start();
        JobDetail job = JobBuilder.newJob(HelloJob.class).build();
        Trigger trigger = TriggerBuilder.newTrigger()
                                        .startNow()
                                        .withSchedule(
                                             CronScheduleBuilder.cronSchedule(exp))
                                        .build();
        scheduler.scheduleJob(job, trigger);
    }
    

    请参见构建另一个表达式的http://www.cronmaker.com/。*每分钟查看输出。另请参见Cron表达式

     类似资料:
    • 问题内容: 我需要帮助在特定时间(如下午2点)在服务器上运行Java程序(以索引新文件)。 有人告诉我Java有一些叫做Job的东西,但我不知道该如何使用。我尝试了这个: 但是有了这个程序仍在运行。 如何在指定时间运行程序? 问题答案: 有一个名为Quartz的API ,您的程序可以在其中调度“作业”,并在该时刻运行它。 在给出示例之前,请尝试使用此链接。 编辑:首先,您必须创建一个实现org.q

    • 问题内容: 我有一个Web应用程序,每小时与中央数据库同步四次。该过程通常需要2分钟。我想将此进程作为线程在X:55,X:10,X:25和X:40运行,以便用户知道在X:00,X:15,X:30和X:45他们有数据库的干净副本。这只是管理期望。我已经通过了执行器,但是调度是通过它完成的,我认为不能保证以小时为单位的实际运行时间。我可以使用第一个延迟来启动,以便第一个接近启动时间和每15分钟的计划,

    • 我想创建一个条件,当用户下订单时,有一个线程运行20秒来检查数据库的支付状态是完成还是挂起,如果完成了,线程将停止,如果仍然挂起,线程将继续运行20秒,并更新数据库中的状态以取消,我使用mybatis和XML映射器 这是我的代码 下面是我在控制器中的代码 这是数据库 它不会显示任何错误,但也不会改变任何东西...

    • 是否有任何专家在使用spingdge调度程序时遇到问题? 我试着设置它在工作日的下午2点到晚上10点之间每小时运行15分钟,但是好像是按分钟触发的,这是因为我的cron出错了还是我应该做smthg来控制它? 通过springboot-web-started在linux服务器上运行 版本

    • 现在我每天下午3点运行我的cron作业 但是我想一天运行两次cron作业。上午10点30分和下午2点30分 我相信此命令将在上午 10:30 运行。我应该如何在下午 2:30 运行它?

    • 问题内容: 我想编写一个简单的python脚本来完成特定的工作。我花了一些时间从网站链接信息。 在正确的时间单击这些链接的最佳方法是什么?我是否需要计算当前电流与列表中的电流之间的时间间隔并睡眠一会儿? 我真的停留在这一点上,并欢迎任何可能有用的想法。 问题答案: 看一下Python的sched模块。