Spring-boot: Quartz Scheduler - Supporting Redis JobStore

Created on 4 Nov 2017  路  4Comments  路  Source: spring-projects/spring-boot

Today the only two supported types of JobStore are _MEMORY_ and _JDBC_ but let's say in my application I have redis and mongo I don't think that we should add a new database setting just to be able to store all details about the job. What I would like to suggest/confirm if we have plans to add support to other types of JobStore.

Example:
https://github.com/RedisLabs/redis-quartz

declined

Most helpful comment

We rely on Spring Framework's support. There are other initiatives to support Redis: redis-quartz and quartz-redis-jobstore.

I don't think we should implement our own store for Redis so I'd try those ones. Flagging for team attention to see what the rest of the team thinks.

All 4 comments

We rely on Spring Framework's support. There are other initiatives to support Redis: redis-quartz and quartz-redis-jobstore.

I don't think we should implement our own store for Redis so I'd try those ones. Flagging for team attention to see what the rest of the team thinks.

IMO none of these 3rd party libraries providing alternative JobStore implementations are suitable for first-class support within Spring Boot due to the following reasons:

  • their release cycle is separate from Quartz Scheduler's, which requires an additional version property in Spring Boot's dependency management
  • related to previous point, there's no guarantee compatibility with future Quartz Scheduler releases will be maintained in timely manner (or at all) for Boot to pick it up
  • both libraries operate directly against Jedis driver, which is not quite Spring way to interact with Redis (like using Spring Data's RedisConnectionFactory would be) and is especially problematic since Lettuce is the preferred Redis driver in Boot
  • it should still be fairly easy to use Boot's Quartz support with these libraries using spring.quartz.properties.*

I agree with @snicoll. Spring Boot isn't the right place to develop a Redis-based JobStore. We should either look at auto-configuring one of the existing options or, if they're not suitable, we shouldn't do anything. Looking at the problems raised by @vpavic, particularly the third one, I am leaning towards not doing anything.

Thanks, I think that confirms my initial feeling about this one. If there is something we can improve to make the user-configuration for Redis easier, we can certainly look at that.

Was this page helpful?
0 / 5 - 0 ratings