java - 如何在启动时运行方法并根据 cron 表达式进行调度并避免并行执行
问题描述
我想每天 14:00 开始工作。我还想在应用程序启动后运行该作业。这项工作足够长(假设是 10 分钟),我担心如果启动发生在 13:58 会发生什么。我想禁止并发任务执行。
下面的工作吗?
@Scheduled(cron = "0 14 * * *")
public void scheduleTaskUsingCronExpression() {
jobMehod();
}
public synchronized void jobMehod(){
// code wihout creation new threads
}
@EventListener(ContextRefreshedEvent.class)
public void onStartup(){
jobMehod();
}
解决方案
synchronized
如果使用默认的 spring 调度程序,则不需要使用方法。
它是单线程的,因此一次不会运行多个计划任务。
推荐阅读
- swift - 从 NSImage 读取 EXIF 数据
- python - 在 Jupyter notebook 中训练时显示 GPU 监控
- vba - 如何使用 vba 在 PrintPreview 中启用打印按钮
- c++ - 使用共享库编译可执行文件时仅链接需要的符号
- python - 向文本文件添加信息,TypeError: '_io.TextIOWrapper' object is not subscriptable
- javascript - 深度嵌套的 Angular 路由
- android - Profiler 无法检测到我的设备
- jupyter-notebook - 在 Jupyter Notebook 中执行降价单元的内容
- ruby - 在 `SecureRandom.hex` 上使用 `SecureRandom.base64` 的用例是什么?
- python - python中是否有所有字母数字符号的列表?