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

SpringBoot执行器未显示计划任务

穆招
2023-03-14

我用SpringBoot创建了一个简单的演示应用程序,其中包括执行器。带有@Scheduled注释的任务显示在执行器中,但以编程方式启动的任务不会显示。有没有办法让他们也出现?

我已经注释了@Enable调度。

我的组件如下所示:

@Component
public class DemoComponent {
    private final TaskScheduler scheduler;

    public DemoComponent(TaskScheduler scheduler) {
        this.scheduler = scheduler;
    }

    @PostConstruct
    public void init() {
        scheduler.scheduleAtFixedRate(() -> System.out.println("Hi"), 1000);
    }

    @Scheduled(fixedRate = 1000)
    public void work() {
        System.out.println("Hello");
    }
}

执行器的结果仅显示带注释的任务:

{
  "cron": [],
  "fixedDelay": [],
  "fixedRate": [
    {
      "runnable": {
        "target": "com.example.demo.DemoComponent.work"
      },
      "initialDelay": 0,
      "interval": 1000
    }
  ],
  "custom": []
}

共有1个答案

陈季
2023-03-14

查看https://github.com/spring-projects/spring-boot/pull/9623/commits/94b00a7b0681b050bba03b4c49edf2df2ec65376下的代码,我想说您需要向SchduledTask书记官长注册您计划的作业,而不是直接向TaskScheduler注册它。所以应该像下面这样做:

@Component
public class DemoComponent {
    private final ScheduledTaskRegistrar scheduler;

    public DemoComponent(ScheduledTaskRegistrar scheduler) {
        this.scheduler = scheduler;
    }

    @PostConstruct
    public void init() {
        scheduler.addFixedRateTask(() -> System.out.println("Hi"), 1000);
    }

    @Scheduled(fixedRate = 1000)
    public void work() {
        System.out.println("Hello");
    }

}

 类似资料:
  • 我正试图把普罗米修斯加入我的Spring靴项目。我正在使用Spring Boot执行器来公开度量endpoint。我按照教程做了所有的事情,但我总是得到一个404错误。我还尝试了中给出的每一个解决方案: context.xml(外部属性):

  • 使用Spring致动器和启用的Prometheus配置来监视RabbitMQ消息状态,但始终显示消息计数为零,即使队列中有消息或已使用消息。是否有任何配置需要读取的消息,在情况下,其他jvm或cpu的使用被适当地监视。 http://localhost:8080/acture/prometheus

  • 我正在尝试用ECS Fargate设置一个计划的任务,但我不知道为什么它没有运行。我可以使用确认任务正常工作,但当我试图按计划触发它时,得到的只是一堆没有任何解释的'failedinvocations'。 虽然我知道规则正在被触发,所以这是一个好的迹象。见下方截图: 但每次触发它时,只有一个“FailedInvocation”。安排规则如下: 谢谢 编辑:区域现在支持此操作。请参阅备注。

  • 我在parallelism 5上有一份flink的工作(目前!!)。其中一个richFlatMap流在打开(配置参数)方法中打开一个文件。在flatMap操作中,没有任何打开操作,它只是读取文件来搜索某些内容。(有一个实用程序类,它的方法类似于utilityClass.searchText(“abc”))。以下是样板代码: python脚本每天都会在特定时间更新此文件。因此,我还应该在flatMa

  • 我在java中遇到了ScheduledExecutorService的问题(几天前我没有遇到这个问题,这让我觉得很奇怪)。请找到下面的代码和控制台输出。重复执行任务之间的延迟是1毫秒,所以理想情况下我应该达到每秒1000的计数(几毫秒),但这只是没有发生。请帮帮忙.. 代码: 控制台输出 1000-2013年3月13日14:43:54.477 200-2013年3月13日14:44:10.296

  • 我有一个基于SpringBoot的web应用程序,它公开了一个Consult health indicator bean。 该bean由SpringBoot的autoconfiguration正确创建和初始化,但是,尽管关联的配置属性“Management.health.consul.Enabled”设置为true,但指示器并未显示在执行器健康endpoint中: 经过进一步检查,我发现了负责获取