nic*_*ild 27
我会用两个独立的结构来做这件事.
对于应用程序启动时,使用后@PostConstuct,并在每天的午夜使用@Scheduled与cron设置值.两者都适用于一种方法.
public class MyClass {
@PostConstruct
public void onStartup() {
doWork();
}
@Scheduled(cron="0 0 0 * * ?")
public void onSchedule() {
doWork();
}
public void doWork() {
// your work required on startup and at midnight
}
}
Run Code Online (Sandbox Code Playgroud)
nicholas.hauschild 和 Philippe Gibert 的解决方案的组合。原因: @PostConstruct 可能不是您想要的,因为您可能需要其他尚未启动的服务。
public class MyClass {
@EventListener(ApplicationReadyEvent.class)
@Scheduled(cron="0 0 0 * * ?")
public void onSchedule() {
doWork();
}
public void doWork() {
// your work required on startup and at midnight
}
}
Run Code Online (Sandbox Code Playgroud)
考虑在doWork()内部捕获异常。
小智 6
关于这个主题的一点,你可以使用@EventListener注解。
这是一个例子:
@Component
public class MyScheduler {
@EventListener(ApplicationReadyEvent.class)
public void onSchedule() {
doWork();
}
public void doWork() {
// your work required on startup
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11587 次 |
| 最近记录: |