Quarkus 替代 Spring @Scheduled(fixedDelay = 10000)

问题描述 投票:0回答:1

我尝试通过导入

@Scheduled(fixedDelay = 10000)
类来实现这个
org.springframework.scheduling.annotation.Scheduled
,它在构建时出现以下错误:

java.lang.IllegalArgumentException:无效的@Scheduled 方法“monitorRoutesProcessing”:不支持“fixedDelay”

Quarkus 有没有办法实现固定延迟的调度器? 我知道我们可以使用 @every

实现固定费率
java spring quarkus scheduling
1个回答
0
投票

Quarkus 的等价物是 @io.quarkus.scheduler.Scheduled。这是来自官方指南的示例:

package org.acme.scheduler;

import java.util.concurrent.atomic.AtomicInteger;
import jakarta.enterprise.context.ApplicationScoped;
import io.quarkus.scheduler.Scheduled;
import io.quarkus.scheduler.ScheduledExecution;

@ApplicationScoped              
public class CounterBean {

    private AtomicInteger counter = new AtomicInteger();

    public int get() {  
        return counter.get();
    }

    @Scheduled(every="10s")     
    void increment() {
        counter.incrementAndGet(); 
    }

    @Scheduled(cron="0 15 10 * * ?") 
    void cronJob(ScheduledExecution execution) {
        counter.incrementAndGet();
        System.out.println(execution.getScheduledFireTime());
    }

    @Scheduled(cron = "{cron.expr}") 
    void cronJobWithExpressionInConfig() {
       counter.incrementAndGet();
       System.out.println("Cron expression configured in application.properties");
    }
}

另请参阅参考指南了解更多信息

© www.soinside.com 2019 - 2024. All rights reserved.