gpt4 book ai didi

java - 创建了计划 cron 作业主类作为可运行的 jar

转载 作者:行者123 更新时间:2023-11-30 08:15:59 25 4
gpt4 key购买 nike

- i have written ScheduleClass which call HelloJob class every 5 seconds.

`

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.quartz.CronScheduleBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;



public class ScheduleClass {

public static void main( String[] args ) throws Exception
{
JobDetail job = JobBuilder.newJob(HelloJob.class)
.withIdentity("dummyJobName", "group1").build();

Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("dummyTriggerName", "group1")
.withSchedule(
CronScheduleBuilder.cronSchedule("0/10 * * * * ?"))
.build();

//schedule it
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);

}
}


public class HelloJob implements Job
{
public void execute(JobExecutionContext context)
throws JobExecutionException {
System.out.println("Hello Quartz!");
}
}

`
  • 在我的IDE(SpringToolSuite)中给定文件-->导出-->选择可运行的JAR文件-->午餐配置(主类)和导出目的地(我的本地路径)-->Finsh

  • 我在本地路径中获取了 jar 文件。

  • 来自 cmd c:\mypath>java -jar ScheduleClassTest.jar
  • 仅执行一次。
  • 需要每 5 秒运行一次。

最佳答案

我知道这应该是一条评论,但无法在那里格式化,所以我将其发布为答案。

不知道怎么办SpringToolSuite工作或创建 jar 。我自己做了并且按预期工作:

  • 编译:我使用与您相同的代码(在 Date 类中添加格式 yyyy-MM-dd HH:mm:ss.SHelloJob )。使用 Oracle JDK 1.6 编译并运行与 quartz 2.2

    javac -cp c3p0-0.9.1.1.jar;log4j-1.2.16.jar;quartz-2.2.1.jar;quartz-jobs-2.2.1.jar;slf4j-api-1.6.6.jar;slf4j-log4j12-1.6.6.jar;. ScheduleClass.java 
    javac -cp c3p0-0.9.1.1.jar;log4j-1.2.16.jar;quartz-2.2.1.jar;quartz-jobs-2.2.1.jar;slf4j-api-1.6.6.jar;slf4j-log4j12-1.6.6.jar;. HelloJob.java
  • 创建 jar:

    jar -cf sched.jar ScheduleClass.class HelloJob.class 

    在这里您可以添加具体的 MANIFEST文件指示其 Main-Class条目(我没有这样做,但它应该也能工作)

    它包含:

    unzip -l sched.jar 

    Archive: sched.jar
    META-INF/
    META-INF/MANIFEST.MF
    ScheduleClass.class
    HelloJob.class

  • 运行

    java -cp c3p0-0.9.1.1.jar;log4j-1.2.16.jar;quartz-2.2.1.jar;quartz-jobs-2.2.1.jar;slf4j-api-1.6.6.jar;slf4j-log4j12-1.6.6.jar;sched.jar ScheduleClass
  • 输出

    log4j:WARN No appenders could be found for logger (org.quartz.impl.StdSchedulerFactory).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
    2015-04-16 13:26:20.17 - Hello Quartz!
    2015-04-16 13:26:30.2 - Hello Quartz!
    2015-04-16 13:26:40.3 - Hello Quartz!
    2015-04-16 13:26:50.3 - Hello Quartz!
    2015-04-16 13:27:00.4 - Hello Quartz!
    2015-04-16 13:27:10.5 - Hello Quartz!
    2015-04-16 13:27:20.21 - Hello Quartz!
    2015-04-16 13:27:30.6 - Hello Quartz!

它会一直持续到按下 CTRL+C

您看到您的代码是正确的。也许你的 jar 的创建方式有问题。看一下,或者像我一样尝试自己编译(如果可能的话)。

很抱歉没有提供更多帮助,但我认为没有什么问题。

关于java - 创建了计划 cron 作业主类作为可运行的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29669567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com