# quartz-redis **Repository Path**: attemper/quartz-redis ## Basic Information - **Project Name**: quartz-redis - **Description**: 使用Redis作为分布式存储和锁的Quartz JobStore - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 10 - **Created**: 2020-04-23 - **Last Updated**: 2024-11-22 ## Categories & Tags **Categories**: task-schedule **Tags**: None ## README # quartz-redis 使用Redis来作为[Quartz Scheduler](http://quartz-scheduler.org/)的分布式存储介质,并使用分布式锁来保证任务同一时刻不重复执行 [English](./README.md) **使用的项目** >👉 Attemper: 分布式多租户的支持流程编排的任务调度平台 👈 >>[Github](https://github.com/attemper/attemper) >>[Gitee](https://gitee.com/attemper/attemper) ## 特点 - 支持分布式锁 - 支持集群和哨兵模式 ## 配置 - 在`pom.xml`添加依赖 ``` xml com.github.attemper quartz-redis 0.9.2 ``` - 配置`org.quartz.jobStore.xxx` 使用quartz-redis,将下列配置配到`quartz.properties`文件中。若系统是spring-boot项目,也适用`.yml` 或 `.properties` ``` # job store class org.quartz.jobStore.class = com.github.quartz.impl.redisjobstore.RedisJobStore # redis host (optional) org.quartz.jobStore.host = <默认值为localhost> # redis password (optional) org.quartz.jobStore.password = <默认值为null> # redis port (optional) org.quartz.jobStore.port = <默认值为6379> # redis database (optional) org.quartz.jobStore.database = <默认值为0> # 参考https://lettuce.io/core/release/reference/index.html#redisuri.uri-syntax org.quartz.jobStore.uri = <可替代掉host/password/port/database,比如配置值为redis://localhost> # redis 集群模式 org.quartz.jobStore.clusterNodes = <用,分割的uri> # redis 哨兵模式 org.quartz.jobStore.sentinelNodes = <用,分割的uri> # redis 哨兵主节点 org.quartz.jobStore.sentinelMaster = <哨兵模式的主节点名称> # 是否开启ssl认证 (optional) org.quartz.jobStore.ssl = <默认值为false> ``` - 只需配置其一 - host,password,port和database - uri - clusterNodes - sentinelNodes和sentinelMaster ## 依赖 `quartz-redis` 依赖下列项目 - [`quartz-core@com.github.attemper`](https://github.com/attemper/quartz) 我Fork了quartz,为了满足我司业务需求,添加了相关功能 也可以使用原生的[Quartz Scheduler](http://quartz-scheduler.org/) - [`lettuce-core@io.lettuce`](https://github.com/lettuce-io/lettuce-core) spring-boot2.x所使用的redis client - `jackson-databind@com.fasterxml.jackson.core` 用作序列化和反序列化job/trigger/calendar等 ```xml com.github.attemper quartz-core 2.3.2.2 io.lettuce lettuce-core 5.x com.fasterxml.jackson.core jackson-databind 2.x ```