corn java 可配置_@Scheduled 定时器 cron表达式自定义配置

本文介绍了两种Java定时任务的实现方式:一种是使用@Component和@Scheduled注解直接定义定时任务,另一种是通过实现SchedulingConfigurer接口并利用CronTrigger动态配置cron表达式来实现任务调度。示例代码展示了如何设置任务执行时间和业务逻辑。
摘要由CSDN通过智能技术生成

方法一:

---------------------

@Component("Taskaa")

public class Taskaa{

@Scheduled

public void show(){

SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println("Taskaa:"+s.format(new Date()));

}

}

---------------------

@Component("Taskbb")

public class Taskbb{

@Scheduled

public void show(){

SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println("Taskbb:"+s.format(new Date()));

}

}

---------------------

方法二:

executor="executor" proxy-target-class="true" />

package com.hhwy.fm.statisticalanalysis.subcontractproduction.job;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.scheduling.Trigger;

import org.springframework.scheduling.TriggerContext;

import org.springframework.scheduling.annotation.SchedulingConfigurer;

import org.springframework.scheduling.config.ScheduledTaskRegistrar;

import org.springframework.scheduling.support.CronTrigger;

import org.springframework.stereotype.Component;

import java.util.*;

@Component

public class SubcontractProductionJob implements SchedulingConfigurer {

//设置任务执行时间轮转,cronExpression表达式 (秒 分 时 日 月 周)

@Value("${TASK_DYNAMIC_CRON}")

private String dynamicCron;

@Override

public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {

taskRegistrar.addTriggerTask(new Runnable() {

@Override

public void run() {

//业务逻辑处理

}

}, new Trigger() {

@Override

public Date nextExecutionTime(TriggerContext triggerContext) {

CronTrigger trigger = new CronTrigger(dynamicCron);

Date nextExec = trigger.nextExecutionTime(triggerContext);

return nextExec;

}

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
@Scheduled 是Spring框架提供的一个注解,用于定时执行方法。cron是@Scheduled注解中的一个属性,用于指定定时任务的执行时间规则。而nacos是一个分布式配置中心,可以用来管理应用程序的配置信息。 要实现@Scheduled的cron引用nacos配置,可以按照以下步骤进行操作: 1. 在项目中引入nacos的依赖,以及Spring的定时任务依赖。可以在pom.xml文件中添加如下依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 2. 在application.properties或application.yml文件中配置nacos的相关信息,包括nacos的地址、命名空间、数据ID等。 3. 创建一个配置类,用于获取nacos中的cron表达式配置。可以使用@Value注解将cron表达式注入到一个变量中,例如: ```java @Configuration public class CronConfig { @Value("${cron.expression}") private String cronExpression; public String getCronExpression() { return cronExpression; } } ``` 4. 在需要定时执行的方法上添加@Scheduled注解,并使用CronConfig类中获取到的cron表达式作为属性值,例如: ```java @Component public class MyScheduledTask { @Autowired private CronConfig cronConfig; @Scheduled(cron = "#{cronConfig.getCronExpression()}") public void myTask() { // 定时执行的任务逻辑 } } ``` 这样,定时任务就会按照nacos中配置cron表达式进行执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值