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

数据库查询网站模板在线转格式网站怎么做

数据库查询网站模板,在线转格式网站怎么做,久久星柔力球拍,网络营销怎么推广一、引言 常见的定时任务框架有 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.yayakq.cn/news/324582/

相关文章:

  • 石家庄网站设计公司开发公司终止函内容
  • 模块化建站工具网站开发与软件开发的区别
  • 无锡网站建设选千客云网络visual studio制作网站开发
  • 四海网络网站建设咨询如何加强企业网站建设 论文6
  • 徐州网站开发公司电话广东广州安全教育平台
  • 宜阳建站网站域名跳转
  • pc网站 手机网站 微信网站 上海网站开发框架 Wordpress
  • 黄页网络的推广网站有哪些好做网站在什么地方找
  • 男女做那个的的视频网站免费的个人简历模板文档
  • 嘉定个人网站建设免费建站推广
  • 建设网站企业邮箱网站建设服务页面设计需求
  • 在线解压rar网站智联企业登录入口
  • 建设银行手机登陆网站wordpress网站测速
  • 建设通网站不良信用信息撤销沈阳男科医院排名10强名单公布
  • 网站标题怎么设置外包开发app需要多少钱
  • 网站后台代码如何做您的网站未备案 或者原备案号被取消
  • 网站做好了该怎么做建设银行 企业
  • 电商网站开发用什么语言表达北京网下载
  • 深圳低价网站建设南通专业家纺网站建设
  • phpcms 网站网站建设行业如何
  • 江门网站建设策划天猫商城的商品来源
  • 门户网站建设注意问题简述网站内容如何优化
  • wordpress安装百度站长资源平台wordpress 静态化 插件
  • 丽水市建设局网站电工证浙江省建设厅官网证件查询
  • 网站开发后台数据怎么来注册域名之后怎么做网站
  • 优良的定制网站建设提供商企业网站开发制作合同
  • 广州网站开发培训学校热门国际新闻
  • 使用中文域名的网站广州网站优化费用
  • 网站流量统计主要指标包括青山网站建设
  • 做化学题的网站静态网页模板简约