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

做跨境的网站百度指数人群画像哪里查询

做跨境的网站,百度指数人群画像哪里查询,wordpress 搭建博客,免费网络推广方法一、引言 常见的定时任务框架有 Quartz、elastic-job、xxl-job等等,本文主要介绍 Spirng Boot 集成 Quartz 定时任务框架。 二、Quartz 简介 Quartz 是一个功能强大且灵活的开源作业调度库,广泛用于 Java 应用中。它允许开发者创建复杂的调度任务&…

一、引言

常见的定时任务框架有 Quartz、elastic-job、xxl-job等等,本文主要介绍 Spirng Boot 集成 Quartz 定时任务框架。

在这里插入图片描述

二、Quartz 简介

Quartz 是一个功能强大且灵活的开源作业调度库,广泛用于 Java 应用中。它允许开发者创建复杂的调度任务,包括简单的周期性任务和复杂的日程安排。Quartz 支持多种类型的任务调度,包括按时间间隔、特定时间点、日历时间和其他复杂的时间表达式。

主要特性:

  • 丰富的调度表达式:支持 Cron 表达式,可以非常灵活地定义任务的调度时间。
  • 持久化支持:Quartz 支持将调度任务存储到数据库中,以保证任务在应用重启后能够继续执行。
  • 集群支持:Quartz 可以在集群环境中运行,提供高可用性和负载均衡功能。
  • 多种触发器:支持多种触发器,包括简单触发器、Cron触发器等。
  • 任务监听器:支持任务的监听器,能够在任务执行前后执行一些额外操作。

二、在 Spring Boot 中集成 Quartz

在 Spring Boot 中集成 Quartz 非常简单,Spring 提供了对 Quartz 的良好支持。以下是一个简单的例子,展示如何在 Spring Boot 项目中使用 Quartz。

步骤 1: 添加依赖

pom.xml 文件中添加以下依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId>
</dependency>

步骤 2: 创建一个任务

定义一个简单的 Quartz 任务类:

package com.example.demo;import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.stereotype.Component;@Component
public class SampleJob implements Job {@Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {System.out.println("Executing Sample Job at " + System.currentTimeMillis());}
}

步骤 3: 配置 Quartz

在 Spring Boot 中配置 Quartz 调度器。可以在 application.properties 或 application.yml 文件中进行配置,也可以通过代码配置。

# 指定Quartz使用的作业存储类型为内存(RAMJobStore),这意味着所有的作业和触发器信息都将存储在内存中。
# 这种方式的存取速度较快,但在系统重启后,所有数据将会丢失,因此它不适合需要持久化作业信息的集群环境。
spring.quartz.job-store-type=memory# 设置Quartz Scheduler的名称,用于区分不同的Scheduler实例。
spring.quartz.scheduler-name=SampleScheduler# 配置当应用启动时,如果检测到已存在的作业(job)与配置的作业相同,则允许覆盖它们。
# 这可以避免在修改作业后需要手动删除数据库中的相关记录。
spring.quartz.overwrite-existing-jobs=true# 配置Quartz线程池的线程数量,这里设置为5
spring.quartz.properties.org.quartz.threadPool.threadCount=5

步骤 4: 创建作业详情和触发器

通过 Java 配置类创建调度任务:

package com.example.demo;  import org.quartz.JobBuilder;  
import org.quartz.JobDetail;  
import org.quartz.SimpleScheduleBuilder;  
import org.quartz.Trigger;  
import org.quartz.TriggerBuilder;  
import org.springframework.context.annotation.Bean;  
import org.springframework.context.annotation.Configuration;  // 这是一个Spring配置类,用于定义Quartz的JobDetail和Trigger  
@Configuration  
public class QuartzConfig {  // 定义一个Bean,用于创建JobDetail实例  // JobDetail描述了Quartz要执行的具体任务  @Bean  public JobDetail sampleJobDetail() {  // 使用JobBuilder来构建一个JobDetail实例  // newJob(SampleJob.class)指定了实际要执行的Job类为SampleJob  // withIdentity("sampleJob")为这个JobDetail设置了一个唯一标识符  // storeDurably()使得JobDetail即使在没有Trigger关联的情况下也能被存储  return JobBuilder.newJob(SampleJob.class)  .withIdentity("sampleJob")  .storeDurably()  .build(); // 构建并返回JobDetail实例  }  // 定义一个Bean,用于创建Trigger实例(触发器)  // Trigger描述了JobDetail的执行计划,即何时开始执行、执行的频率等  @Bean  public Trigger sampleJobTrigger() {  // 使用SimpleScheduleBuilder来构建一个简单的调度计划  // withIntervalInSeconds(10)设置了任务执行的间隔为10秒  // repeatForever()表示任务将无限次重复执行  SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()  .withIntervalInSeconds(10)  .repeatForever();  // 使用TriggerBuilder来构建Trigger实例  // forJob(sampleJobDetail())指定了Trigger关联的JobDetail为之前定义的sampleJobDetail  // withIdentity("sampleTrigger")为这个Trigger设置了一个唯一标识符  // withSchedule(scheduleBuilder)设置了之前定义的调度计划  return TriggerBuilder.newTrigger()  .forJob(sampleJobDetail()) // 注意这里通常使用JobDetail的引用而不是方法调用,但在这个例子里也可以  .withIdentity("sampleTrigger")  .withSchedule(scheduleBuilder)  .build(); // 构建并返回Trigger实例  }  
}

步骤 5: 启动应用

启动 Spring Boot 应用程序,Quartz 调度器会自动启动,并按照配置的调度策略执行任务。

三、持久化配置

  1. 在 application.properties 文件中加入 Quartz 相关配置。
# 将 Quartz 持久化方式修改为 jdbc
spring.quartz.job-store-type=jdbc
# 实例名称(默认为quartzScheduler)
spring.quartz.properties.org.quartz.scheduler.instanceName=SC_Scheduler
# 实例节点 ID 自动生成
spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO
# 修改存储内容使用的类
spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX
# 数据源信息
spring.quartz.properties.org.quartz.jobStore.dataSource=quartz_jobs
spring.quartz.properties.org.quartz.dataSource.quartz_jobs.driver=com.mysql.cj.jdbc.Driver
spring.quartz.properties.org.quartz.dataSource.quartz_jobs.URL=jdbc:mysql://127.0.0.1:3306/quartz_jobs?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8
spring.quartz.properties.org.quartz.dataSource.quartz_jobs.user=root
spring.quartz.properties.org.quartz.dataSource.quartz_jobs.password=123456
  1. 初始化 Quartz 数据表信息

下载 Quartz 发布包,下载完成后,解压缩进入 quartz-2.2.3/docs/dbTables 目录,找到匹配数据库的 SQL 文件

下载地址:
https://www.quartz-scheduler.org/downloads/files/quartz-2.2.3-distribution.tar.gz

然后在数据库中执行 tables-mysql.sql 初始化脚本。

四、总结

通过以上步骤,可以在 Spring Boot 应用中成功集成并使用 Quartz 来进行任务调度。Quartz 的强大之处在于其灵活性和可扩展性,能够满足各种复杂的任务调度需求。在实际应用中,可以根据具体需求配置更多的 Quartz 特性,如持久化、集群等。

  • 在生产环境中,需要配置 Quartz 的持久化选项,以便在应用程序重启后仍然可以恢复调度任务的状态。
  • 可以使用 @Autowired 将 Scheduler 注入到你的服务或组件中,以动态地添加、删除或更新作业和触发器。
  • Quartz 还提供了很多其他的功能和选项,如监听器、插件、作业恢复等
http://www.15wanjia.com/news/194293.html

相关文章:

  • 商务网站建设中存在的问题用php做京东网站页面
  • 平泉市住房和城乡建设局网站手机网站表单页面制作
  • 西宁电商网站制作公司机刷推广软件
  • 学校集约网站建设婚庆行业网站建设方案1
  • 网站备案名称中国开头网站页面设计与实现
  • 沂源网站设计多语言版本网站
  • 北京响应式网站建设费用外链网盘网站
  • 做网站的不给源文件高考志愿网站开发
  • 珠海网站开发公司支持wordpress免费
  • 廊坊网站建设推广什么网站有教做详情页
  • 专业外贸网站制作a标签怎么显示wordpress
  • 网站开发实训的心得网页设计好的网站
  • 网站域名的作用找别人做网站怎么防止后门
  • 烟台网站备案服务商官网
  • wap网站制作怎么做购物网站源码
  • 北京网站建设厂家赵艳红网站建设规划
  • 仿网站后台怎么做凡科送审平台登录入口
  • 做课内教学网站快站建站教程
  • 美食网站制作代码美工网站设计是什么
  • wordpress 字数优化网站找哪家
  • 网站的后台地址毕设DW做网站的过程
  • 嘉兴网站制作套餐江苏优化网站关键词
  • 学生网站作品虚拟主机加RDS安装wordpress
  • 泉州建站方案能用二级域名做网站吗
  • 提交收录网站盐城永祥建设有限公司网站
  • 怀集网站建设网站ico图标怎么做
  • 网站建设工单系统泗塘新村街道网站建设
  • 外卖网站建设可行性分析互联网广告公司排名前十
  • WordPress P站网站开发与设计结课论文
  • 聚美优品返利网站怎么做辽宁做网站的公司