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

SpringBoot调度程序Cron过度运行

方和宜
2023-03-14

是否有任何专家在使用spingdge调度程序时遇到问题?

我试着设置它在工作日的下午2点到晚上10点之间每小时运行15分钟,但是好像是按分钟触发的,这是因为我的cron出错了还是我应该做smthg来控制它?

通过springboot-web-started在linux服务器上运行

@Scheduled(cron = "0 15 14-22 * * MON-FRI")
private void fireDownload() {
    log.info("fireDownload");

    this.jmsXXXX.run(Constants.XXXX);
}

版本

spring-boot 2.4.2
java 11

共有1个答案

平山
2023-03-14

请试试这个

@Scheduled(cron = "0 */15 14-22 * * MON-FRI")

您在评论中说这不起作用,因此让我们使用每 5 分钟触发一次的简单概念验证来测试这一点

@Scheduled(cron = "0 */5 8-22 * * MON-FRI")
private void cronPOC() {
    log.info("cronPOC triggered by cron");
}

下面的屏幕截图显示POC确实在工作。

当我们在测试时,让我们把上面评论中的@GerbenJongerius建议也放到测试中(为了加快速度,做了一些微小的修改)。

@Scheduled(cron = "0 0/5 8-22 ? * MON-FRI")
private void cronPOC() {
    log.info("cronPOC triggered by cron v2");
}

一些Spring cron示例,并在此处进行解释: https://stackoverflow.com/a/26147143/14072498

 类似资料:
  • 我正在使用和以及集群模式下的oracle db,我正在使用所有quartz api,因为我面临spring支持的quartz api的问题。 我的作业类中有一些依赖项没有初始化,我在调度程序上下文中传递了这些依赖项,然后它就开始工作了。 问题是我的cron表达式是每5分钟运行一次

  • 我有两个要求。 每周一触发作业 对于第一个要求,我尝试了和。他们俩都不工作。该函数未被调用。 对于第二个要求,我尝试了和。我得到下面的错误。 原因:java。lang.IllegalStateException:遇到无效的@Scheduled方法“monthlyData”:用于输入字符串:“2#1”。

  • 我正在做一个项目,我们计划使用WLP (WebSphere liberty)代替传统的WAS。 代码使用 WAS 调度程序来调度活动。 liberty 是否也具有与 WAS 中存在的相同级别的调度程序支持/功能? 如何将调度程序任务从webphere迁移到自由?

  • 我想调度多个任务使用@调度注释使用cron表达式。我有三项工作需要在固定时间执行。例如,作业-1被安排在每天晚上11点,作业-2被安排在每天早上7点到晚上9点,间隔1小时,作业-3被安排在每1小时。所有3个计划任务都是同一应用程序的一部分。 我也尝试过同样的方法,但所有三个调度都没有发生。我的应用程序是SpringBoot应用程序。我不是新的调度。请帮帮我。下面是他我的方法 application

  • 我有几个Lambda函数,在一个时间表上,这些工作没有任何问题。但是,我有一个一次性的工作,我试图为一个现有的函数设置,当我创建新规则时得到一个错误: null http://docs.aws.amazon.com/lambda/latest/dg/tutorial-ductived-events-schedule-expressions.html 谢谢大家!

  • 我使用RxJava2 Android网络的网络调用。我面临的问题是,当我试图通过命中API时,有时它不会给出任何响应,而当我试图通过命中API时,它总是给出回应 和