java Spring @Scheduled的Quarkus替代方案(fixedDelay = 10000)

zdwk9cvp  于 2023-09-29  发布在  Java
关注(0)|答案(1)|浏览(139)

我试图通过导入org.springframework.scheduling.annotation.Scheduled类来实现这个@Scheduled(fixedDelay = 10000),它在构建时给出了以下错误:
java.lang.IllegalArgumentException:@Scheduled方法“monitorRoutesProcessing”无效:不支持'fixedDelay'
有没有办法在Quarkus中实现具有固定延迟的调度器?我知道我们可以使用@every来实现固定费率

vwoqyblh

vwoqyblh1#

Quarkus的等效项是@ io. quarkus. scheduler. Scheduled。下面是一个the official guide的例子:

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");
    }
}

有关详细信息,请参见the reference guide

相关问题