当前位置: 首页 > news >正文

Java:处理crontab定时任务的最简单方法

通过spring可以实现最简单的处理crontab的定时任务,下面提供2种方法

方法一:

import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;@Service
public class TestSerice {@Async@Scheduled(cron="autorunCron")public void doTask() {// do something}
}

 这种方法需要添加如下2个annotation:

@EnableScheduling
@EnableAsync

方法二:

import javax.annotation.PostConstruct;import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Service;@Service
public class CronTaskService {@Value("${autorunCron}")private String autorunCron;@PostConstructpublic void initTask() {Runnable run = new Runnable() {@Overridepublic void run() {updateCache();}};executeTask(run, autorunCron);
}public void executeTask(Runnable task, String crontab) {ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();taskScheduler.setPoolSize(2);taskScheduler.setThreadNamePrefix("task-");taskScheduler.initialize();CronTrigger cronTrigger = new CronTrigger(crontab);taskScheduler.schedule(task, cronTrigger);}public void doTask() {// do something;}
}

这种方法灵活一些,可定制的空间更大。

以上2种方法最终采用哪种要根据实际情况来选择。


http://www.mrgr.cn/news/26826.html

相关文章:

  • ComfyUI中用wget下载、安装节点
  • PMP--一模--解题--51-60
  • css scrollbar-width: none 隐藏默认滚动条
  • 怎么将flv转换成mp4格式?这几种转换方法超多人在用!
  • 2024年03月中国电子学会青少年软件编程(Python)等级考试试卷(一级)答案 + 解析
  • GMB外链是什么?
  • 性能诊断的方法(四):自下而上的资源诊断方法和发散的异常信息诊断方法
  • 【C#】自动升级工具
  • 局域网聊天工具:提升企业内部信息安全的私有化即时通讯软件
  • 【专题】2024新能源企业“出海”系列之驶向中东、东南亚报告合集PDF分享(附原数据表)
  • GPT-4-Turbo 和 Claude-3.5-Sonnet 图片识别出答题的是否正确 进行比较
  • 无线通信总结
  • GIS开发从0到1|MapboxGL可视化项目实战教程(含步骤说明和代码展示)3
  • 数据资产入表流程概述
  • 如何在算家云搭建TripoSR(三维重建)
  • 35岁嫌老,65嫌年轻,程序员还有路子吗?
  • 三丰云免费虚拟主机和免费云服务器评测
  • 【Kubernetes】linux centos安装部署Kubernetes集群
  • 一个开源的大语言模型(LLM)服务工具,支持Llama 3.1、Phi 3、Mistral、Gemma 2 等, 87.4k star你必须拥有(附源码)
  • 从头开始学MyBatis—03自定义映射和动态SQL