定时任务调度

定时任务的实现方式:1、定时任务框架:quartz    2、SpringBoot内置定时任务调度:Spring Task 

3、多线程里线程池:ScheduledExecutorService  4、java.util.Timer类里的TimeTask   5、Thread类

6、xxl-job:大众点评大牛开发的定时任务框架    7、elastic job:当当大牛开发的定时任务框架

定时任务使用场景:定时更新数据库,定时发邮件,定时发送短信。

xxl-job使用教程:1、https://github.com/xuxueli/xxl-job,从上面下载聚合工程。

                            2、启动,需要在数据库建立对应的表。

                            3、调度中心访问地址:http://localhost:8080/xxl-job-admin 。

                            4、在启动一个job服务器,接着在任务管理模块点击执行按钮执行定时任务,

                          5、注意启动顺序,先启动调度中心服务,在启动job服务器服务,job服务器可以是多个。这是由分布式调度平台的原理决定的:所有的执行器(job)必须先在任务调度平台执行,然后由任务调度平台路由(就是分发,可以理解为nginx的负载均衡)到实际的job服务器。

 定时任务配置类的形式,配置文件里配置,配置类里通过@value("${xxx}")取值,然后XxlJobSpringExecutor类里设置。



/**
 * <pre>
 * @功能及特点的描述简述: 定时任务初始化及配置
 * <pre>
 */
@Slf4j
//@Configuration
public class UTaxJobConfig {

  @Value("${xxl.job.admin.addresses}")
  private String adminAddresses;

  @Value("${xxl.job.executor.appname}")
  private String appName;

  @Value("${xxl.job.executor.ip}")
  private String ip;

  @Value("${xxl.job.executor.port}")
  private int port;

  @Value("${xxl.job.accessToken}")
  private String accessToken;

  @Value("${xxl.job.executor.logpath}")
  private String logPath;

  @Value("${xxl.job.executor.logretentiondays}")
  private int logRetentionDays;

  @Value("${utax.job.enabled}")
  private String UTAX_JOB_ENABLED;

  @Bean(initMethod = "start", destroyMethod = "destroy")
  public XxlJobSpringExecutor xxlJobExecutor() {
    if (Boolean.valueOf(this.UTAX_JOB_ENABLED)) {
      log.info(">>>>>>>>>>> utax-job config init.");
      XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
      xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
      xxlJobSpringExecutor.setAppName(appName);
      xxlJobSpringExecutor.setIp(ip);
      xxlJobSpringExecutor.setPort(port);
      xxlJobSpringExecutor.setAccessToken(accessToken);
      xxlJobSpringExecutor.setLogPath(logPath);
      xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
      return xxlJobSpringExecutor;
    } else {
      log.warn("任务未开启,不初始化分布式调度器!");
      return null;
    }
  }


}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值