在spring boot中计划函数

at0kjp5o  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(371)

我正在尝试安排以下函数每10秒运行一次。但它告诉我们它需要一个空函数。有没有办法安排以下功能?

@Scheduled(fixedRate = 10000)
public FtpOutboundGateway getFiles() {
    FtpOutboundGateway gateway = new FtpOutboundGateway(sf(), "mget", "payload");
    gateway.setAutoCreateDirectory(true);
    gateway.setLocalDirectory(new File("./downloads/"));
    gateway.setFileExistsMode(FileExistsMode.REPLACE_IF_MODIFIED);
    gateway.setFilter(new AcceptOnceFileListFilter<>());
    gateway.setOutputChannelName("fileResults");
    return gateway;
}
lkaoscv7

lkaoscv71#

为此,我们需要做以下几件事。
首先将这个注解@enablescheduling放在类级别。
然后在需要调度的函数处用@scheduled标记。
我们尝试调度的函数不应返回任何内容。

@EnableScheduling
class <ClassName>{
//def

 @Scheduled(fixedDelayString = "10000")
 public void fxnName() {
   //def
}

}
bvpmtnay

bvpmtnay2#

@Scheduled 方法由线程池中的线程在给定的间隔或时间内进行内部调用,注解希望它为空,因为返回值没有意义。如果要跟踪响应,请将其提取到另一个方法并从 @Scheduled 方法以及其他服务。

相关问题