在jee environement中执行工作

时间:2017-05-21 21:44:13

标签: spring java-ee job-scheduling

我正在开发一个应用程序,使用户能够进行金融交易。我有一些操作需要几天才能执行。 所以我想知道是否有一种方法可以在没有我干预的情况下在预期的一天执行这些操作,我的意思是它应该由系统自动完成。 我实际上正在使用spring框架,我已经做了一些研究,并找出了spring框架支持的Task Execution and Scheduling。但我不知道这对我的案例是否是一个不错的选择,因为即使我的应用程序没有运行,我也不知道这个求职者是否会工作,而且你知道交易执行应该用或者没有运行应用程序。 我是Spring框架的新手,尤其是这个工作的东西。 任何人都可以向我解释这个' Job'概念以及如何在我的案例中使用它。 在此先感谢和最诚挚的问候。

1 个答案:

答案 0 :(得分:0)

使用spring调度任务非常可靠,但您的应用程序必须正在运行。 您可以使用cron表达式来设置触发器,在此示例中,它将在每周一至周五凌晨2点运行。

@Component
public class ScheduledTasks {

    private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(cron="0 0 2 * * MON-FRI")
    public void reportCurrentTime() {
        log.info("The time is now {}", dateFormat.format(new Date()));
    }
}

这里如何构建cron表达式像

一样

示例模式:

"0 0 * * * *" = the top of every hour of every day.
"*/10 * * * * *" = every ten seconds.
"0 0 8-10 * * *" = 8, 9 and 10 o'clock of every day.
"0 0 6,19 * * *" = 6:00 AM and 7:00 PM every day.
"0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30, 10:00 and 10:30 every day.
"0 0 9-17 * * MON-FRI" = on the hour nine-to-five weekdays
"0 0 0 25 12 ?" = every Christmas Day at midnight