在 Spring 引导中安排功能
Scheduling a function in Spring boot
我正在尝试将以下函数安排为每 10 秒 运行。但它告诉它需要一个 void 函数。有什么办法可以安排以下功能吗?
@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;
}
为此,我们需要做以下事情。
- 先把这个注解@EnableScheduling放在class层级。
- 那么在需要预约的功能上,要标注@Scheduled。
- 我们正在尝试安排的函数不应该 return 任何东西。
@EnableScheduling
class <ClassName>{
//def
@Scheduled(fixedDelayString = "10000")
public void fxnName() {
//def
}
}
由于 @Scheduled
方法由线程池中的线程在给定的时间间隔或时间内在内部调用,注释预计它是无效的,因为它对 return 值没有意义。如果您想追踪响应,请将其提取到另一个方法并从 @Scheduled
方法以及其他服务调用它。
我正在尝试将以下函数安排为每 10 秒 运行。但它告诉它需要一个 void 函数。有什么办法可以安排以下功能吗?
@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;
}
为此,我们需要做以下事情。
- 先把这个注解@EnableScheduling放在class层级。
- 那么在需要预约的功能上,要标注@Scheduled。
- 我们正在尝试安排的函数不应该 return 任何东西。
@EnableScheduling
class <ClassName>{
//def
@Scheduled(fixedDelayString = "10000")
public void fxnName() {
//def
}
}
由于 @Scheduled
方法由线程池中的线程在给定的时间间隔或时间内在内部调用,注释预计它是无效的,因为它对 return 值没有意义。如果您想追踪响应,请将其提取到另一个方法并从 @Scheduled
方法以及其他服务调用它。