spring动态加载时间表达式并生成定时任务
来源:互联网 发布:网络协议教程 pdf 编辑:程序博客网 时间:2024/05/17 14:19
定时调度管理类:
@Componentpublic class ScheduledTaskManager { Logger logger = LoggerFactory.getLogger(getClass()); private static Map<String, ScheduledFuture<?>> scheduleFutureMap = ScheduledProcessPool.INSTANCE.getPool(); @Autowired private ThreadPoolTaskScheduler threadPoolTaskScheduler; @Autowired private FuturesOrderService futuresOrderService; private ScheduledFuture<?> schedule; @Bean public ThreadPoolTaskScheduler threadPoolTaskScheduler() { return new ThreadPoolTaskScheduler(); } /** * 描述:新增任务调度 * * @param key 定时任务key * @param cron 时间表达式 */ public void addScheduled(String key, String cron) { //移除key的任务调度 removeScheduled(key); //新增任务调度 schedule = threadPoolTaskScheduler.schedule(() -> { //此处进行定时调度的业务操作 }, new CronTrigger(cron)); if (schedule != null) { scheduleFutureMap.put(key, schedule); } } /** * 描述:移除任务调度 * * @param key 定时任务key */ public void removeScheduled(String key) { //先取消任务调度 ScheduledFuture<?> future = scheduleFutureMap.get(key); if (future != null && !future.isDone()) { future.cancel(true); } //并将任务调度从map中移除 if (scheduleFutureMap.containsKey(key)) { Iterator<String> it = scheduleFutureMap.keySet().iterator(); while (it.hasNext()) { if (it.next().equals(key)) { it.remove(); break; } } } }}
定时调度池:
public enum ScheduledProcessPool { INSTANCE; private Map<String, ScheduledFuture<?>> scheduledPool; /** * 调度池初始容量 */ private int initialCapacity = 50; private ScheduledProcessPool() { scheduledPool = new ConcurrentHashMap<String, ScheduledFuture<?>>(initialCapacity); } /** * Description: 获取任务调度池 */ public Map<String, ScheduledFuture<?>> getPool() { return scheduledPool; }}
在需要动态生成定时调度任务的代码中,注入定时调度管理类,并调用其addScheduled()方法,传入调度池的key与定时调度时间表达式cron即可
阅读全文
0 0
- spring动态加载时间表达式并生成定时任务
- Spring 定时任务配置以及用法,定时任务时间表达式
- spring 定时任务 CronExpression时间表达式编写
- spring 定时任务cron在线表达式生成
- spring 定时任务cron在线表达式生成
- spring 定时任务cron在线表达式生成
- Spring定时任务(动态时间设置)
- Quartz动态设置任务时间/spring动态定时任务
- 定时任务时间表达式
- 定时任务时间表达式
- spring加载定时任务
- cron表达式详解(Spring定时任务配置时间间隔)
- spring实现可动态修改时间定时任务
- quartz定时任务,时间表达式
- Spring定时任务quartz表达式
- spring设置动态定时任务
- spring 动态配置定时任务
- Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查
- Python入门之一:list列表
- 【转载】SciPy for .NET & IronPython
- ssm项目一直报错,陷入死循环,解决办法
- 论文阅读笔记-Siamese instance search for tracking(转)
- 基于Python的nessus API简析——监听&获取扫描结果
- spring动态加载时间表达式并生成定时任务
- 卷积神经网络Quiz4
- 在服务器上搭建scrapy分布式爬虫环境的过程
- “id串行化”到底是怎么实现的
- Spring Boot--POI导出excel文件下载
- 软件工程师的职业生涯要历经以下几个阶段
- Ubuntu16.04+Apache虚拟主机配置详解
- 关于remove的用法
- 多线程基础学习十三:ReentrantLock的了解与使用