我正在尝试安排以下函数每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;
}
2条答案
按热度按时间lkaoscv71#
为此,我们需要做以下几件事。
首先将这个注解@enablescheduling放在类级别。
然后在需要调度的函数处用@scheduled标记。
我们尝试调度的函数不应返回任何内容。
bvpmtnay2#
自
@Scheduled
方法由线程池中的线程在给定的间隔或时间内进行内部调用,注解希望它为空,因为返回值没有意义。如果要跟踪响应,请将其提取到另一个方法并从@Scheduled
方法以及其他服务。