cron表达式在当前日期时间执行一次

时间:2014-09-16 05:43:33

标签: java quartz-scheduler cronexpression

我需要构建一个Cron Expression来执行一个Job。

我尝试使用以下内容:

private String generateCronExpressionNow(final  String seconds,final String minutes, final String hours, final String dayOfMonth, final String month, final String dayOfWeek, final String year) {
        return String.format("%1$s %2$s %3$s %4$s %5$s %6$s %7$s",seconds+"/2",minutes, hours, dayOfMonth, month, dayOfWeek,year);
    }

Called the above method using:

generateCronExpressionNow(Integer.toString(date.getSeconds()),Integer.toString(date.getMinutes()),
                                Integer.toString(date.getHours()),Integer.toString(date.getDate()), Integer.toString(date.getMonth()+1), "?", Integer.toString(date.getYear()+1900)

但这似乎反复运行...多次。请帮忙。

同时提到java.lang.RuntimeException: CronExpression '4 27 11 ? 8 ? 2014' is invalid,

1 个答案:

答案 0 :(得分:1)

根据Quartz教程,SimpleTrigger旨在用于“如果您需要在特定时刻执行一次作业”。这个用例还有一个例子http://www.quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/tutorial-lesson-05

SimpleTrigger trigger = (SimpleTrigger) newTrigger() 
    .withIdentity("trigger1", "group1")
    .startAt(myStartTime) // some Date 
    .forJob("job1", "group1") // identify job with name, group strings
    .build();

...或者您是否有特定原因要在此处使用cron表达式?