java - 如何编写一个cron表达式或设置一个在Spring中只执行一次的计时器?

标签 java spring cron quartz-scheduler spring-scheduled

我每天早上都会从后端 Spring-MVC java 应用程序向 Android 应用程序发送推送通知。为此,我创建了一个 cron 作业,并在 WebConfig(@EnableScheduling) 中初始化了一个 bean。这个 bean 每天早上都会发送通知。

但是如果用户没有阅读它,那么只有我必须在晚上的特定时间发送另一个通知。否则我不应该发送任何东西。如何编写Cron expressen调度程序设置计时器以在特定时间仅发送一次时间仅限当天

最佳答案

仅启动一次 cron 进程没有多大意义......

模式 0 0 小时-分钟 * * ? 会将任务编程为一小时一分钟,但每天:

0 0 15-45 * * ?    // will execute task at 15:45

但要实现这一点,请查看 this answer that shows how to use a Timer to create a thread that runs when needed :

private static class MyTimeTask extends TimerTask
{    
    public void run()
    {
        //write your code here
    }
}

public static void main(String[] args) {
    //the Date and time at which you want to execute
    DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = dateFormatter .parse("2012-07-06 13:05:45");

    //Now create the time and schedule it
    Timer timer = new Timer();
    timer.schedule(new MyTimeTask(), date);
}

关于java - 如何编写一个cron表达式或设置一个在Spring中只执行一次的计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30842713/

相关文章:

java - Spring Controller 和端点之间的区别

java - 没有反射的 Spring

docker - 由于 docker/cron,设备上没有剩余空间

java - Openshift online v3启动报错

java - Firebase 实时数据库不更新子项

java - 从范围中获取日期

postgresql - 使用 crontab 运行 Makefile

java - 在netbeans中将一个jar文件包含在另一个jar文件中

spring - 从 AuthenticationSuccessHandler 访问 RequestContextHolder 和 HttpServletRequest.getUserPrincipal()

macos - 挂载加密稀疏包的 Cron 作业