java - 我可以将 Redis 用作计划队列,对 key 过期事件使用react吗

标签 java redis queue schedule

我正在考虑在我的 Java 应用程序中使用 Redis,而不是 Quartz。

想法是重用 Redis key 过期机制,作为作业触发器。使用以下工作流程:

  1. 在 Redis 中创建一个 key ,并在预定时间过期
  2. 在 Java 中监听 key 过期时间。
  3. 当 key 过期时触发作业,由 key 名称定义。

有人试过这样的用例吗?

最佳答案

是的,我尝试解决几个与 Redis 缓存过期有关的问题。我使用了 NodeJs。

但是你必须维护这个逻辑,即使它为下一个过程过期,并根据你的业务逻辑设置过期时间

redisCache.config('set','notify-keyspace-events','KEA');

redisCache.subscribe(`__keyevent@${process.env.REDIS_DATABASE}__:expired`);

redisCache.on('message',  (channel, key) => {
    /** 
      Logic
   */
});

关于java - 我可以将 Redis 用作计划队列,对 key 过期事件使用react吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25589741/

相关文章:

java - 100 个数字的阶乘

java - 警告 org.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Bootstrap 代理 127.0.0.1 :9092 (id: -1 rack: null) disconnected

java - 跟踪多线程java程序的总执行时间

Spring Redis缓存不驱逐

spring-boot - java.lang.IllegalStateException : Failed to load ApplicationContext , springboot设置

java - 在lua中将字节数组转换为double

javascript - 没有回调的 jQuery 队列命令

javascript - jQuery 延迟对象

java - 在STS 3.7.2中找不到Spring MVC模板项目

ios - Alamofire 优先队列